def PrintPKoeff( K=20 ): P = [[1L,1L,0]] print P while 1: Pstrich = [] Faktor = P[0][2] + 1L for i in P: istrich = [i[0]*(i[2]+1L), i[1]*Faktor, i[2]+1] f = ggT( istrich[0], istrich[1] ) if f: istrich[0] = istrich[0] // f istrich[1] = istrich[1] // f Pstrich.append( istrich ) Pstrich.append( [0L,1L,0] ) Pneu = [[ Pstrich[0][0], Pstrich[0][1], Pstrich[0][2] ]] IsFirst = 1 j = 0 for i in Pstrich: if IsFirst: IsFirst = 0 continue za = i[0] na = i[1] zb = P[j][0] nb = P[j][1] z = za*nb - zb*na n = na*nb f = ggT( z,n ) if f: z = z//f n = n//f Pneu.append( [z, n, i[2]] ) j = j+1 print Pneu if Pneu[0][2]>= K: break P = Pneu def ggT(a,b): a=abs(a) b=abs(b) if b0: h=b b=a a=h%a return b if __name__ == "__main__": PrintPKoeff()