...是否为素数时,只需看能否被2到根号n之间的数整除,这是为什么?没有别...

发布网友 发布时间:2024-10-24 13:18

我来回答

2个回答

热心网友 时间:2024-10-26 08:19

因为如果一个数不是素数是合数, 那么一定可以由两个自然数相乘得到, 其中一个大于或等于它的平方根,一个小于或等于它的平方根。并且成对出现。 程序改了下: #include <stdio.h> int main(void) { int m,i; scanf("%d",&m); for(i=2;i<m;i++) { if(m%i==0) break; } if (i < m) printf("%d is not a prime number\n",m); else printf("%d is a prime number\n",m); return 0; }

热心网友 时间:2024-10-26 08:15

有几个问题 i没有初始值 for(i>1,i<m,i++); 括号里面用;而不是, 最后一个;去掉 补充: 判断素数 的最优算法就是只判断2到根号n之间的数 如果你要判断2到m-1也是可以的 只是效率上不是最优
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com