写判断质数的程序时,需特别注意边界条件:
1.开始边界条件:2作为第一位质数,不参与循环;
2.循环主体:divisor += divisor % 2 +1
代表当除数divisor
是奇数时+2,是偶数时+1;
3.结束边界条件:当divisor
趋近n
时,即divisor=n-1
或divisor=n-2
,仍然没有数能被n
整除,那么可以判断n
为质数
#include
int main() {
int divisor;
int n;
scanf("%d",&n); // 输入要判断的数
if (n == 2) {
printf("YES");
} else {
for (divisor = 2; divisor < n; divisor += (divisor % 2 + 1) ) {
if (n % divisor == 0) {
printf("NO"); // 当出现能被1或自身之外整除时
break;
} else if (divisor == n - 1 || divisor == n-2) {
printf("YES"); // 循环到 n-1 或 n-2 时,仍然没有被其他数整除
}
}
}
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)