作业帮 > 综合 > 作业

C++用筛选法求100之内的素数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/26 16:24:20
C++用筛选法求100之内的素数
书上说:
(1)先将1挖去
(2)用2去除它后面的各个数,把能被2整除的数挖掉
(3)用3去除它后面各数,把3的倍数挖掉
(4)分别用4、5……各数作为除数去除这些数以后的各数.这个过程一直进行到在除数后面的数已全被挖掉为止.例如要找出1到50中的素数,要一直进行到除数为47为止.事实上,可以简化,如果需要找1到N范围内素数表,只需进行到除数为“根号N”即可.
这个最后一句话是什么意思?
就是用两个for循环嵌套,然后计算就完了,你要程序的话我可以帮你写一个.逻辑很简单 你慢慢想
再问: 程序代码我这里有 就是不清楚逻辑
再答: 这个逻辑也比较容易理解,比如说1到100,他说的根号100就是 10,所以说他从2开始,排除100以内2的倍数,3的倍数。。。一直到10的倍数就可以了。例如 2 可以排除 4 6 8 10 12...,3可以排除6 9 15..。同理11的2倍和2的11倍是相同的,都是22 ,但22在2的倍数已被排除,所以11的倍数排除的第一个数应该是11*11=121,已经超出了100的范围,所以说比较到根号N就可以了