from __future__ import generators def bifac(k): n=k+k+1L x=[] o=[] r=binom(n) for i in r: x.append(i) del x[n] while n>0L: n=n-1 f=x[n] o=o+[f] i=n//2L r=0L for j in binom(i): x[i+r]-=f*j r+=1 n-=1L return o def binom(n): nz=n*1L nn=1L p = 1L yield(p) while nn<=n: p=(p*nz)//nn nz-=1L nn+=1L yield(p) return def ggT(a,b): a=abs(a) b=abs(b) if b0: h=b b=a a=h%a return b def pinom(n): k=1L vz=[3L] vn=[1L] az=9L an=1L while k<=n: s=2*k+1L v2=bifac(k) fz=vz[0] fn=vn[0]*s g=ggT(fz,fn) fz=fz//g fn=fn//g az=az*fn+an*fz an=an*fn g=ggT(an,az) an=an//g az=az//g i=1 oz=[] on=[] while i