python求素数问题

janelml 2013-03-21 02:29:14
先看我的代码
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,这个怎么解决呢?谢谢大家关注
...全文
293 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
乔巴好萌 2013-03-22
  • 打赏
  • 举报
回复
没出现异常 可能环境配置不同? 异常时有堆栈阿 总要能看到是哪里异常的把
guangboo 2013-03-22
  • 打赏
  • 举报
回复
没有发现该问题,使用楼主的代码,即使使用更大的数:40000000000000都没有问题。是否真的内存小呢?
人生的船长 2013-03-22
  • 打赏
  • 举报
回复
求素数的算法一般只要num/2次运算就够了, 如 count = num/2 while count > 1: if num % count ==0: "num is not a prime" count -=1 else: print "true" 没有测试过哈,还有就是2是唯一的偶质数
libralibra 2013-03-21
  • 打赏
  • 举报
回复
还有个bug就是没有判断输入是2的情况
bugs2k 2013-03-21
  • 打赏
  • 举报
回复
换用xrange

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧