筛素数,在天哥的威逼利诱下改了筛素数的模板...以后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 阅读(155)
评论(0) 编辑 收藏 引用