一些素数


爱尔兰好奇的羊看着摄影师本页由赞助商提供https://www.A-Wee-Bit-of-Ireland.com/. https://www.A-Wee-Bit-of-Ireland.com/有在爱尔兰拍的照片。更多约翰拍摄的照片莫耶可以在以下位置找到https://www.rsok.com/~jrm/photos/index.html.


如果你想要很多素数或更大的素数,我的JAVA素数程序可能比这个程序更好因为它将在您的计算机上运行,而不是在我的慢速服务器上。或者,您可以从我的主页下载程序或源代码:https://www.rsok.com/~jrm/.如果你只想要前100个素数,他们在https://www.rsok.com/~jrm/first100primes.html.https://www.rsok.com/~jrm/next_ten_primes.html将打印下一个10提供的整数之后的素数。如果图形窗口太小保留结果,请检查JAVA控制台窗口。

使用筛子生成素数列表。为了减少存储需求,提供有关prime或not的信息prime在每个字节中存储30个整数。只需要一个位存储整数的素数或非素数。整数的值由位的位置可知。

在每30个整数中,对于N>=1,可能是素数的数字是
N*30+1,
N*30+7,
N*30+11,
N*30+13,
N*30+17,
N*30+19,
N*30+23,
N*30+29号
这意味着关于素数或非素数的信息只需要占用8位。一个10字节的文件将为300保存素数或非素数整数。它之所以有效,是因为N*30的因子为2,3,5,无论是什么N(N*30)+3的值有3作为因子,因为3也是因子第页,共30页。(N*30)+(x*3)也有3作为因子,因为它可以写作为(N*10+x)*3。

用于素数紧凑存储的关系可能描述人:

(2-1)*(3-1)*(5-1)-----------------==8位/30个整数2*3*5

在传统的筛子中,一个钻头用于存储每个整数。如果有人知道唯一的偶数素数是2并存储它算法中的信息而不是内存中的信息,则为内存的1/2需要。使用上面的符号,

(2-1)/2==1位/2个整数

如果不存储3,那么

((2-1)*(3-1))/(2*3)==2位/6个整数

需要的存储器,(或者,当每个整数使用一个位时,所需存储空间的1/3)但这对于8位/字节的存储来说并不方便。

我的30个整数的8位存储方案可以扩展到:

(2-1)*(3-1)*(5-1)*(7-1)-----------------------==48位/210个整数2*3*5*7

这将是我使用的方法的存储需求的6/7。如果扩展到下一个素数,那么只需要10/11的存储空间,或者是我使用的存储空间的60/77。


在下表中输入两个正整数以获得素数列表间隔中的数字。我建议不要做太大的范围来避免运行web浏览器时内存不足。如果你想要全部9800万素数小于2000000000,那么我建议下载我的筛子程序。下面有指向源代码和二进制文件的链接。筛子程序的运行速度将大大超过这个速度较慢的web服务器所能提供的数字到浏览器。例如,我的旧300 MHz AMD K6耗时1小时只需33分钟就可以打印出少于800000000的367783654个素数。如果你只需要几百个素数,这个网络服务器就足够了它的所有素数都小于800000000。我做了一个筛选程序的Windows版本将达到800000000,或如果你有足够的公羊,可能会走得更远。64位程序称为sieve2310_64位.exe.如果您想要在Linux上实现这一点,只需更改无符号long转换为long long并更改printf格式并用gcc编译3.2(或更新版本)或任何C99兼容编译器。筛2310_64位.c


请将自己限制在100000左右,以避免连接超时。如果你想要更多,请下载上述程序。

起始整数


结束整数



有关的更多信息田纳西大学马丁分校的质数。

更多信息犹他大学的素数。

对什么是质数的解释来自dr.math。

作为整数序列的素数,请访问www.research.att.com.

http://dmoz.org/Science/Math/Number_Theory/Prime_Numbers网站/有许多到素数网页的好链接。

的源代码从web服务器筛选程序,或嵌入html以便于使用Internet Explorer查看筛2310.c.html

这个程序使用(经许可)少量我的代码计算各种素数统计信息。http://ndirty.cute.fi/~karttu/matikka/Schemuli/primestats.c.txt.

查找下一个素数大于您提供的整数。这个是一个JAVA程序,需要在web浏览器中安装足够新的JAVA以包括java.math。BigInteger包。源代码是在这里。
查找您提供的整数后面的十个质数。

约翰·莫耶的主页
向John Moyer发送电子邮件


本页访问者经常问的一些问题。

我在哪里可以找到所有质数的列表?

如果你想要所有的质数而不是那些到了某个任意的极限,那么你就没有运气了。有一个无限素数。一个叫欧几里德的希腊人证明了这一点几年前。他通过假设有一个有限的数来证明这一点素数中,素数N是最大的素数。然后,可以乘法将所有素数加在一起,并将一个素数加到乘积中。这个新号码不能被相乘在一起的任何素数整除,因此它要么是质数本身,要么是质素的乘积大于我们之前假设的最大素数。所以这个假设是错误的,没有最大的素数。你不能得到所有素数。总有一个更大的素数。

如何将数字1,2,3,4,5,6,7,8,9排列为九位数的素数?

如果每个数字只使用一次,则无法排列它们是质数。这九位数字之和是45,可以整除3。因此,3是这九位数中任何一个的因子,并且它们都不是质数。

之所以这样做是因为9位数字可以写为多项式的。为了用一个3位数来说明这一点,456可以写入作为4*10*10+5*10+6然后,因为10=(9+1)也许吧也写为4*(9+1)*(9+1)+5*(9+1)+6。对于任意3位数,其中数字由a、 b、c,它将是a*(9+1)*(9/1)+b*(9+1)+c。这可能会成倍增加出乎意料(a*9+a*1)*(9+1)+b*(9/1)+c. 再乘以一次((a*9)*9+(a*1)*9+(a*九)*1+(a*1)*1)+b*9+b*1+c.这简化为a*81+a*9+a*9+a+b*9+b+c.因为3将包含9或9的倍数,则如果3平均地除以其余项(a+b+c)整个数字可以被3整除。


版权所有©1999-2007,John Moyer,保留所有权利。