素数的问题
#include <stdio.h>int main()
{
int i, num;
_Bool flag = 1;
printf("请输入一个整数:");
scanf("%d", &num);
for (i = 2; i < num / 2; i++) 请问这里的 i < num / 2 是什么意思??? 求解答
{
if (num % i == 0)
{
flag = 0;
}
}
if (flag)
{
printf("%d是一个素数!\n", num);
}
else
{
printf("%d不是一个素数!\n", num);
}
return 0;
} ... <友情提示:楼主,循环过程的条件,有点问题,自己尝试输入4即可了解>
判断10是不是素数,可以判断到10/2 也就是5 就可以了。
因为你从2开始的,如果能被2整除,证明不是素数,6 7 8 9 这些数也就不用判断了
如果不能被2整除,那也不用判断了,因为需要判断的数字的一半(例如5)以上的数字,乘数不可能是整数了(除了数字本身),你看,6 * ? = 10---- 6都不可能是整数了,更何况更大的呢?
并且,我们一般用 sqrt 这个函数,不是使用数字的中间值,而是使用它的平方根。想一想为什么?
(提示:比如6, 2*3 和 3*2 有区别吗?)
页:
[1]