当前位置:首页 > 影视动漫 >

所有质数(质数表全部质数)

来源:原点资讯(www.yd166.com)时间:2023-10-29 14:44:31作者:YD166手机阅读>>

所有质数,质数表全部质数(1)

问题:输入一个正整数 N(N > 2),求小于 N 的全部质数。

质数,就是除了1和它本身外不存在其他因子的数。

1、基本循环法

循环法:利用质数的定义,循环判断该数除以比它小的每个自然数(大于1),如果有能被它整除的,则它就不是质数。

示例代码如下:

#include <iostream> using namespace std; int main() { int N = 50; int sumStep = 0; // 统计迭代次数 cout << 2 << endl; // 2 是质数 for (int i = 3; i < N; i) { bool flag = true; // 假设是质数 for (int j = 2; j < i; j) { sumStep = sumStep 1; if (!(i % j)) { // 找到能被整除的 flag = false; break; } } if (flag) { cout << i << endl; } } cout << "sumStep: " << sumStep << endl; return 0; }

运行结果如下:

所有质数,质数表全部质数(2)

2、算法优化

可以看到,当 N = 50 时,上述算法总共进行了349次循环。

在上述基本算法的基础上,可以对循环进行一些优化,减少循环次数:

  • 对于第一层循环:除了2之外,偶数肯定不是质数,因此可以将第一层循环步数设为2;
  • 对于第二层循环:在第一层循环的基础上,因为质数首先肯定是奇数,所以只需用奇数整除即可,即第二层循环步数也可以设为2;
  • 对于第二层循环:判断一个数 i 是不是质数,只需用 3 到 sqrt(i) 之间的奇数判断即可。因为 i 的因数除了 sqrt(i),其他都是成对存在的,比如36的因数(2、3、4、6、9、12、18),36 = 2 * 18;36 = 3 * 12;36 = 4 * 9;36 = 6 * 6;

代码优化如下:

#include <iostream> #include <cmath> using namespace std; int main() { int N = 50; int sumStep = 0; // 统计迭代次数 cout << 2 << endl; // 2 是质数 for (int i = 3; i < N; i = 2) { bool flag = true; // 假设是质数 int jStop = sqrt(i); // 终止条件 for (int j = 3; j <= jStop; j = 2) { sumStep = sumStep 1; if (!(i % j)) { // 找到能被整除的 flag = false; break; } } if (flag) { cout << i << endl; } } cout << "sumStep: " << sumStep << endl; return 0; }

运行结果如下:

所有质数,质数表全部质数(3)

优化后,只需31次循环,相比原来的349次,大大减少了循环次数,提升了算法效率。

相关阅读

栏目热文

11是质数吗(11的质数有哪些)

11是质数吗(11的质数有哪些)

任意的整数,当从左向右读与从右向左读是相同的,且为素数时,称为回文素数。求 1000 以内的所有回文素数。算法思想实例的...

2023-10-29 15:03:28查看全文 >>

21有多少个质数(1-20有几个质数)

21有多少个质数(1-20有几个质数)

在一些有关数学的文章中,我们经常会看到中国数学家陈景润成功证明了“1 2=3”,而全世界没有一个数学家能够证明“1 1=...

2023-10-29 14:45:58查看全文 >>

如何帮助花草树木过冬(有哪些方法可以帮助树木过冬)

如何帮助花草树木过冬(有哪些方法可以帮助树木过冬)

冬天是一年中最寒冷的季节,对于喜欢养花的人来说,也是最考验花卉养护技巧的时候。不同的花卉对温度、湿度、光照、水分等条件的...

2023-10-29 15:16:35查看全文 >>

树木花草怎么样过冬(花草树木是怎么过冬的大全)

树木花草怎么样过冬(花草树木是怎么过冬的大全)

冬天植物防寒方法千千万,这3种最简单有效,你一定要知道自从入冬之后,天气越来越冷了,北方的地区已经陆陆续续的开始供应暖气...

2023-10-29 14:59:55查看全文 >>

哪些花草树木需要过冬(花草树木是怎么过冬的大全)

哪些花草树木需要过冬(花草树木是怎么过冬的大全)

现在选择花草绿植,就不得不考虑它们的耐寒能力了。因为中秋节一过,天气一天比一天凉,冬天的脚步也就变得越来越近。如果选择了...

2023-10-29 15:19:00查看全文 >>

21和19是互质数吗(21和11哪个是质数)

21和19是互质数吗(21和11哪个是质数)

题记在终极的分析中,一切知识都是历史;在抽象的意义下,一切科学都是数学;在理性的世界里,所有判断都是统计。——统计学领袖...

2023-10-29 14:41:55查看全文 >>

新版港币100元发行时间(新版港币100元有几种版本)

新版港币100元发行时间(新版港币100元有几种版本)

在沉寂了许久之后的香港tnf100终于有了消息,比赛将于12.8号开始,粗略看了下100km的路线,和之前的路线有些变化...

2023-10-29 14:45:57查看全文 >>

港币发行过几版(港币三个版本哪个流行最广)

港币发行过几版(港币三个版本哪个流行最广)

香港货币的历史可以追溯到1845年,当时成立的东藩汇理银行是香港首家发钞行,这家总部位于印度的银行开启了香港货币发行的先...

2023-10-29 14:42:11查看全文 >>

目前流通的港币哪年发行(港币现行流通的10元是哪发行的)

目前流通的港币哪年发行(港币现行流通的10元是哪发行的)

大家好,这里是只谈纸币的花火的钞票百科,我是花火。本期内容我们聊一聊香港钞票的一些基本情况,我手上也有不少香港纸币,这一...

2023-10-29 14:47:46查看全文 >>

如何界定港币发行时间(港币怎么看发行日期)

如何界定港币发行时间(港币怎么看发行日期)

2023年2月5日是中国传统的元宵佳节。纵观海内外,除了中国之外,日本、韩国、新加坡、马来西亚等国也同样拥有欢度元宵佳节...

2023-10-29 14:54:42查看全文 >>

文档排行