|
|
[这个贴子最后由elimqiu在 2010/09/29 01:30am 第 2 次编辑]
这个程序是用 python 写的。在大约 17 秒内结束计算并将结果存入文件(14Mb)。
计算结果是列出前 一百五十万个素数: 2,3,...
这个程序还可以继续算更多的素数。我把结果输入到了MySQL数据库. 利用数据库语言SQL 来找出一个正整数的素数分解。非常方便。
程序如下:- def saveprimes(n,start=0):
- if n==2: return [2]
- elif n<2: return []
- s=range(3,n+1,2)
- mroot = n ** 0.5
- half=(n+1)/2-1
- i=0
- m=3
- while m <= mroot:
- if s[i]:
- j=(m*m-3)/2
- s[j]=0
- while j<half:
- s[j]=0
- j+=m
- i=i+1
- m=2*i+3
- result = [2]+[x for x in s if x]
- if start > 0:
- result = result[start:]
- print "Count = ",len(result)
- result = str(result)
- FILE = open("primeL.txt","w")
- FILE.writelines(result)
- FILE.close()
- print "Done!"
复制代码 ==============================================
我的计算机不算很快: 2.2Gh 双核, 2Gb Ram 而已。
我的 python 2.7 (免费) 可以处理至少大到 9223372036854775807
(好像还可以大)的正整数。
[br][br]-=-=-=-=- 以下内容由 elimqiu 在 时添加 -=-=-=-=-
python 程序的缩进很重要。如果上面的代码因为在拷贝时有出入,可向我要代码文件。 |
|