def Is(a):
for i in range(2,a):
if a%i==0:
return False
return True
n=int(input())
b=[]
s=0
for c in range(2,n+1):
if Is(c):
b.append(str(c))
d=b[-10::]
for g in d:
s+=int(g)
print(s)
考虑从算法上优化,比如判断a是不是素数,只要从2除到其平方根就可以了,而不用除到a。
import math
def Is(a):
#这里面只需要判断2~根号a之间的值就可以
for i in range(2,int(math.sqrt(a)) + 1):
if a%i==0:
return False
return True
n=int(input())
b=[]
s=0
for c in range(2,n+1):
if Is(c):
print(c)
b.append(str(c))
d=b[-10::]
for g in d:
s+=int(g)
print(s)
import math
n = 100
ls = []
result = 0
for i in range(n,1,-1): # from n to 0
flag = False
for j in range(2,int(math.sqrt(i))+1):
if i%j == 0:
flag = True
break
if not flag: # su shu
result += i
if len(ls) <= 10: # only 10
ls.append(i)
else:
break
print(ls,result)