python求素数问题
本帖最后由 janelml 于 2013-03-21 14:32:30 编辑 先看我的代码
import math,sys
number = raw_input("input the number:")
number = int(number)
if(number<=1):
print 'number <=1'
sys.exit()
for i in range(2,int(math.sqrt(number)) + 1):
if(number%i==0):
print 'number %i is not prime number' %(number)
sys.exit()
print 'number %i is the prime number' %(number)
这里在数据量小的情况下是可以使用的,一旦输入的Number比较大,如400000000,会报memory error,这个怎么解决呢?谢谢大家关注 python math input
[解决办法]
求素数的算法一般只要num/2次运算就够了,
如 count = num/2
while count > 1:
if num % count ==0:
"num is not a prime"
count -=1
else:
print "true"
没有测试过哈,还有就是2是唯一的偶质数