-
新万博狗万
推荐
欧拉计划723:毕达哥拉斯四边形
毕达哥拉斯四边形 ...
-
新万博狗万
推荐
欧拉计划722:慢收敛系列
...
-
新万博狗万
1推荐
欧拉计划721:无理数高次幂
![enter image description here][1] 设f(a,n)=floor{(ceil{sqrt{a}}+sqrt{a})^n} 已知f(5,2)=27,f(5,5)=3935 设G(n)=f(a,a^2). 已知G(1000)mod999999937=1…...
-
新万博狗万
1推荐
欧拉计划719:拆分数
![enter image description here][1] 定义自然数完全平方数n为Sn,如果它的算术平方根等于其十进制数拆分为的各个数之和。 如:sqrt{81} = 8+1,sqrt{6724} = 6+72+4,sqrt{8281} = 8+2+81 = 82+…...
-
新万博狗万
2推荐
欧拉计划718:不可达数
![enter image description here][1] 等式17pa+19pb+23pc=n,其中a,b,c,p为大于0的整数。 对一个给定的p,有些n的值使等式不能有解,把这些值叫做不可达数。 ,定义G(p)为对给定的p不可达数的个数。 已知 G(1)=825…...
评论了
快速幂取模算法 https://www.cnblogs.com/wkfvawl/p/9125224.html
测试代码 import math def f(a,n): return math.floor((math.ceil(math.sqrt(a))+math.sqrt(a))**n) >>> f(5,2) 27 >>> f(5,5) 3935 >>> def G(n): ... s=0 ... for a in range(1,n+1) :s+=f(a,a*a) ... return s ... >>> G(10) 31997447160056074891755545250568015145391367309910918290177259841659637836252530747180
最后的递归程序 在麒麟980的m6平板上,用termux的python 3.8.3 84秒 在i3 4010上 python 3.8.3 149秒 pypy 7.3 28秒
import time def t(n,x): #print(n,x,-1) if n==int(x):return 1 if n>int(x):return 0 for i in range(1,len(x)): r= t(n-int(x[-i:]),x[:-i]) if r==1: return r return 0 x='123' y=x[:-2] z=x[-2:] #print(z,y) s=0 n=10**6 tm=time.time() for i in range(9,n+1,9): for j in [0,1]: i+=j z=t(i,str(i**2))*i**2 #print(z) s+=z print(time.time()-tm) print(s)
拆成7个数只有大于10w才需要 import time def test(N): t=time.time() s=0 for i in range(1,N+1): if (adds(i)%9==0 or adds(i)%9==1) and (is_sn(i)==1 or is_sn2(i)==1 or is_sn3(i)==1 or is_sn4(i)==1 or (i>10**4 and is_sn5(i)==1) or (i>10**5 and is_sn6(i)==1)): s+=i*i #print(i,i*i,is_sn(i),is_sn2(i),is_sn3(i),is_sn4(i),is_sn5(i),is_sn6(i),adds(i)) print(time.time()-t) return s