# Run with sage --nodotsage A097614.spyx. Not A097614.spyx.txt # More info at http://doc.sagemath.org/html/en/reference/index.html # and http://mpmath.org/doc/0.19/index.html from mpmath import mp def pi(): return "3."+getpi() def A280532(n): return firstA280532(n,[])[-1] def getpi(prec1): disp=prec1 prec1 += 1 prec_ratio=14.18 mp.dps = prec1 if disp==0: pi_str='' elif disp==1: pi_str='1' else: maxK = int(mp.ceil(prec1/prec_ratio)) + 1 k1, m, l, x, s = 6, mp.mpf(1), mp.mpf(13591409), mp.mpf(1), mp.mpf(13591409) for j in range(1, maxK + 1): m = ((k1 ** 3) - (k1<<4)) * (m / (j ** 3)) l += mp.mpf(545140134) x *= mp.mpf(-262537412640768000) s += m*l/ x k1 += 12 pi2 = (mp.mpf(426880) * (mp.sqrt(mp.mpf(10005))))/s pi_str=str(pi2) pi_str = pi_str.replace('3.', '') pi_str = pi_str[:disp] return pi_str def firstA280532(n,lst=[]): finished = False counter1=counter = len(lst) if len(lst)<2: lst=[1,1] else: pass prec1=150 pi1=getpi(prec1) while not finished: pi1 = getpi(prec1) for i in range(counter,n+counter1): ll=len(lst) p2 = lst[ll-1]+lst[ll-2] p=pi1.find(str(p2)) if p != -1: p += 1 lst.append(p) else: counter = i prec1 *= 10 finished = False break finished = True print(str(i)+" "+str(p)+" "+str(prec1)) return lst def writetofile(l): ln=(len(l)) f1=open("bA280532.txt","w") f2=open("aA280532.txt","w") for i in range(ln): line1=str(i)+" "+str(l[i])+"\n" line2=str(l[i])+", " f1.write(line1) f2.write(line2) f1.close() f2.close() print("===Start===") writetofile(firstA280532(6)) print("===End===")