|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我的2000000素数之和跑了好久还没获得答案,长到我觉得是不是我程序有问题了。
- def is_prime(num):
- if num > 1:
- if num ==2:
- return True #2是素数
- elif num == 3:
- return True #3是素数
- else:
- for i in range(2,num):
- if num%i == 0:
- return False
- else:
- return True #没有数则为素数
- return False
- result=sum(i for i in range(2000000) if is_prime(i))
- print(result)
复制代码
- primes=[False,True]*1000000
- primes[1]=False
- primes[2]=True
- sum=0
- for num,i in enumerate(primes):
- if i:
- sum+=num
- temp=num<<1
- for num in range(num+temp,2000000,temp):
- primes[num]=False
- print(sum)
复制代码718ms 出结果
|
|