求找质数
int n;scanf("%d",&n);
for(i=3;i<=n;i+=2){
for(m=3;m<i;m+=2)
{
if(i%m==0||m*m>i)
break;
}
if(m*m>i)
printf("%d\n",i);
关于质数这是什么意思?
一开始那个初始化i=3也不是很理解?{:5_96:} 没有比3小的奇数质数,所以初始化为3。
除2外,没有偶数是质数,所以每次循环加2 这个代码想实现什么 青出于蓝 发表于 2022-12-1 07:13
没有比3小的奇数质数,所以初始化为3。
除2外,没有偶数是质数,所以每次循环加2
那这个代码不打印2啊{:10_277:} 本帖最后由 weimengnan006 于 2022-12-1 17:04 编辑
这个函数应该是输入一个数,找所有的质数
质数的定义是:只能被1和自身整除的数
1,最小的质数是2,若你输入2,不会进入到for循环中,直接输出质数为2
2,如果输入的数字大于2,就从3开始循环,为什么每次要+2,因为3加上1个奇数的话,就变成偶数了,肯定会被2整除,所以就不可能是质数了
所有的质数都是奇数,但并不是所有的奇数都是质数 weimengnan006 发表于 2022-12-1 17:03
这个函数应该是输入一个数,找所有的质数
质数的定义是:只能被1和自身整除的数
1,最小的质数是2,若你 ...
所有的质数都是奇数,但并不是所有的奇数都是质数 错
除了2以外所有的质数都是奇数,但并不是所有的奇数都是质数 除了2以外的所有奇数都是质数,直接赋值i=3是因为2就是最小的质数就不需要走循环了 jhq999 发表于 2022-12-1 19:11
所有的质数都是奇数,但并不是所有的奇数都是质数 错
除了2以外所有的质数都是奇数,但并不是所有的奇数 ...
对的,疏忽了,my bad
页:
[1]