求前50个质数.要求确定一个数n能否是质数,用已求出的质数对n的整除性来确定

C语言 码拜 8年前 (2016-04-21) 1062次浏览
求前50个质数.要求确定一个数n能否是质数,用已求出的质数对n的整除性来确定.
主要是没懂他所说的,用已求的质数对n的整除性来确定是什么意思.
解决方案

10

是这样的:
n从2开始。这时n=2。
此时还没有确认哪个数是质数,因此“已求的质数”是个空集。用这个空集里的全部已求的质数(这时个数为0)对n(这时就是2)的整除性来确定2是不是质数。因此有0个已求的质数能整除2。也就是说没有一个已求的质数能整除2,因此2是质数。
此时“已求的质数”不是个空集,而是有一个成员“2”。“已求的质数”就是“2”。
然后判断下一个n,(=3)是不是质数。这时“已求的质数对n的整除性来确定”3是不是质数,意思就是用2对3的整除性来确定3是不是质数。由于2不能整除3,所以3是质数。
这时“已求的质数”就是“2”和“3”。
然后判断下一个n,就是4,是不是质数。“已求的质数对n的整除性来确定”4是不是质数,意思就是用2和3对4的整除性来确定3是不是质数。由于2能整除4,所以4不是质数。

10

引用:
Quote: 引用:

判断一个自然数是不是质数,可以用全部比它小的质数从小到大依次去除它,除到商比除数小,而且还有余数,它就是质数,否则不是质数。

没理解, 例如要判断13是不是质数, 那么用1,3,5,7,一次去除以13, 然后得到的商比13小, 且有余数,

原理其实和8楼说的差不多,只不过是除的次数少一点。例如对于19,比它小的质数有2,3,5,7,11,13,17.那么从小到大依次用2,3,5,7,11,13,17去除19.当用5去除19的时候,商为3,小于5,并且此时有余数。那么就可以判断19是质数了,不再需要用其余的数再去除19了。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求前50个质数.要求确定一个数n能否是质数,用已求出的质数对n的整除性来确定
喜欢 (0)
[1034331897@qq.com]
分享 (0)