测试代码 ---- def G(p,N): .... A,B,C=17**p,19**p,23**p .... .... s=set() .... c=0 .... for a in range(1,N//A+1): .... for b in range(1,N//B+1): .... for c in range(1,N//C+1): .... s.add(A*a+B*b+C*c) .... for i in range(1,N): .... if i not in s: .... c+=1 .... #print(c,",") .... return c .... ---- G(1,10000) 556 ---- G(1,20000) 991 ---- G(1,25000) 1208 ---- G(1,40000) 1861 ---- G(1,80000) 3600
---- def G(p,N):
.... A,B,C=17**p,19**p,23**p
....
.... s=set()
.... c=0
.... for a in range(1,N//A+1):
.... for b in range(1,N//B+1):
.... for c in range(1,N//C+1):
.... s.add(A*a+B*b+C*c)
.... for i in range(1,N):
.... if i not in s:
.... c+=1
.... #print(c,",")
.... return c
....
---- G(1,10000)
556
---- G(1,20000)
991
---- G(1,25000)
1208
---- G(1,40000)
1861
---- G(1,80000)
3600
for i in range(A+B+C+1,N):
if i not in s:
c+=1
print(i,",")
return c+A+B+C-1
比如17*10=170 19*9=171
29*19=551 23*24=552
那n+1就一定有解,只要把前一个积换成后一个积
第一个解59+17=76 ,第二个59+19=78,第三个59+23=82
第四个59+17*2=93 ,第五个59+17+19=95,第六个59+19+19=97,第七个59+17+23=99,第八个59+19+23=101,第九个59+23+23=105