篩素數,在天哥的威逼利誘下改了篩素數的模板...以后PE都python了...
#Firename:pe37.py
import math
N=1000000
prime = [0 for row in range(N)]
res = []
top=0
def Prime():
for i in range (2,N):
prime[i]=1
prime[0],prime[1]=0,0
for m in range(2,N):
if prime[m]==1:
prime[m]=1
res.append(m)
for k in range(2*m,N,m):
prime[k]=0
tot=0
Prime()
for i in range(len(res)):
temp=res[i]
flag=0
while temp>0:
if prime[temp]!=1:
flag=1
break
temp/=10
temp=res[i]
t=1
while temp>0:
temp/=10
t*=10
temp=res[i]
while t>0:
if prime[temp]!=1:
flag=1
break
tmp=temp/t
temp=temp-tmp*t
t/=10
if flag==0 and res[i]>10:
top+=1
tot+=res[i]
print tot
print top
后來發現python里面原來有直接可以求素數的函數 - -||
#prime_list(n) 返回一個list,存1 - n 內的素數
#prime_table(n) 返回一個list,用0 1 表示是不是素數
posted on 2010-08-29 21:54
ccyy 閱讀(170)
評論(0) 編輯 收藏 引用