发件人:HJSmith@ix.netcom.com(哈里·史密斯)新闻组:alt.mah.娱乐,alt.sci.math.组合,aus.mathematics,sci.math,sci.mash.num-analysis主题:主题:素数算法日期:1998年6月14日星期日格林尼治标准时间16:40:24“雷恩·拉尔森”写的:>有人能告诉我一个测试素数的好算法吗?我想用>它在一个程序中计算可以由>32位正整数(最大值2147483647)。>>我自己想出了以下几点:>如果测试值a与2不均匀整除,则其与>A/2。这同样适用于3[nonascii char]3、4[nonascii char]4等等>如果A为>与等分。>>不幸的是,当我想计数时,这个算法有点慢>所有可以用32位整数表示的素数,所以我想知道>我可以用一个更好的。>>雷内这就是我将程序更改为以2倍权限工作时得到的结果:PrimePi2-计算PrimePi(x)计数函数1.20版,最新修订:1998-06-13,1600小时版权所有(c)1981-1998作者:Harry J.Smith,19628 Via Monte Dr.,Saratoga,CA 95070。保留所有权利。键入任意键以继续。。。(或按Esc键退出)3=最后一个素数<2^2,#2。经过时间:0.00秒。7=最后一个素数<2^3,#4。经过时间:0.00秒。13=最后一个素数<2^4,#6。经过时间:0.00秒。31=最后一个素数<2^5,#11。经过时间:0.00秒。61=最后一个素数<2^6,#18。经过时间:0.00秒。127=最后一个素数<2^7,#31。运行时间:0.00秒。251=最后一个素数<2^8,#54。经过时间:0.00秒。509=最后一个素数<2^9,#97。经过时间:0.00秒。1021=最后一次素数<2^10,#172。经过时间:0.00秒。2039=最后一个素数<2^11,#309。经过时间:0.00秒。4093=最后一个素数<2^12,#564。经过时间:0.00秒。8191=最后一个素数<2^13,#1028。经过时间:0.00秒。16381=最后一个素数<2^14,#1900。经过时间:0.00秒。32749=最后一个素数<2^15,#3512。经过时间:0.00秒。65521=最后一个素数<2^16,#6542。经过时间:0.05秒。131071=最后一个素数<2^17,#12251。经过时间:0.05秒。262139=最后一次素数<2^18,#23000。经过时间:0.16秒。524287=最后一个素数<2^19,#43390。经过时间:0.38秒。1048573=最后一个素数<2^20,#82025。经过时间:0.71秒。2097143=最后一个素数<2^21,#155611。经过时间:1.54秒。4194301=最后一个素数<2^22,#295947。经过时间:12.52秒。8388593=最后一个素数<2^23,#564163。经过时间:20.54秒。16777213=最后一个素数<2^24,#1077871。经过时间:41.69秒。33554393=最后一个素数<2^25,#2063689。经过时间:69.53秒。67108859=最后一个素数<2^26,#3957809。运行时间:101.12秒。134217689=最后一个素数<2^27,#7603553。经过时间:168.07秒。268435399=最后一个素数<2^28,#14630843。经过时间:311.81秒。536870909=最后一次素数<2^29,#28192750。经过时间:591.27秒。1073741789=最后一个素数<2^30,#54400028。经过时间:1175.40秒。2147483647=最后一个素数<2^31,#105097565。经过时间:2468.57秒。4294967291=最后一个素数<2^32,#203280221。经过时间:5643.98秒。π(6741513313)=312392500。经过时间:10125.02秒。-哈里-- |Harry J.Smith,19628 Via Monte Dr.,Saratoga,CA 95070-4522,美国|家庭电话:1 408 741-0406,工作电话:1 1408 235-5088(语音邮件)|电子邮件:HJSmith@ix.netcom.com,传真:1 408 235-2019|网站:网址:http://www.netcom.com/~hjsmith--