python主程序验证一个大的偶数一定等于两个素数之和_试编写Python程序,根据哥德巴赫猜想一:任何大于6的偶数都可表示为两个素数之和,对100000内的偶数进行验证...

展开全部

#coding=utf-8

import sys,time

from math import sqrt

def isprime(num):

for i in range(2,int(sqrt(num))+1):

if num%i==0:

return False

return True

def gedebahe(num):

for i in range(2,num//2+1):

if isprime(i) and isprime(num-i):

return True

return Falsese

def main(n):

for i in range(6,n+1,2):

if not gedebahe(i,L):

print('fail at number {}'.format(i))

break

else:

tip='success: all evens in {} can be the sum of two primes.'

print(tip.format(n))

if __name__=='__main__':

start=time.time()

n=100000

if len(sys.argv)>1:

n=int(sys.argv[1])

main(n)

end=time.time()

print('cost {} seconds'.format(end-start))

[willie@62616964757a686964616fe58685e5aeb931333363366164bogon pys]$ python gedebahe.py

success: all evens in 100000 can be the sum of two primes.

cost 24.8260421753 seconds#coding=utf-8

import sys,time

from math import sqrt

def primes(n):

# prepair data space

plist = [0, 0] + list(range(2,n+1))

for i in range(2, int(sqrt(n))+1):

if plist[i]:

plist[i+i::i] = [0] * len(plist[i+i::i])

return filter(None, plist)

def gedebahe(n,L):

for i in L:

if (n-i) in L:

return True

elif i>n//2+1:

return False

def main(n):

L=list(primes(n))

for i in range(6,n+1,2):

if not gedebahe(i,L):

print('fail at number {}'.format(i))

break

else:

tip='success: all evens in {} can be the sum of two primes.'

print(tip.format(n))

if __name__=='__main__':

start=time.time()

n=100000

if len(sys.argv)>1:

n=int(sys.argv[1])

main(n)

end=time.time()

print('cost {} seconds'.format(end-start))

[willie@bogon pys]$ python gedebahe.py

success: all evens in 100000 can be the sum of two primes.

cost 70.5533659458 seconds

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值