素数是只能被 1 和它本身整除的正整数。例如:2、3、5、7、11、13、17。
判断素数的程序
#include <stdio.h>
int main() {
int n, i, flag = 0;
printf("Enter a positive integer: ");
scanf("%d", &n);
// 0 and 1 are not prime numbers
// change flag to 1 for non-prime number
if (n == 0 || n == 1)
flag = 1;
for (i = 2; i <= n / 2; ++i) {
// if n is divisible by i, then n is not prime
// change flag to 1 for non-prime number
if (n % i == 0) {
flag = 1;
break;
}
}
// flag is 0 for prime numbers
if (flag == 0)
printf("%d is a prime number.", n);
else
printf("%d is not a prime number.", n);
return 0;
}
输出
Enter a positive integer: 29 29 is a prime number.
在该程序中,一个 for
循环从 i = 2
迭代到 i < n/2
。
在每次迭代中,使用以下语句检查 n 是否能被 i 整除:
if (n % i == 0) {
flag = 1;
break;
}
如果 n 能被 i 整除,则 n 不是素数。在这种情况下,将 flag 设置为 1,并使用 break
语句终止循环。
请注意,我们在程序开始时将 flag 初始化为 0。
因此,如果循环结束后 n 是素数,flag 仍将为 0。但是,如果 n 不是素数,flag 将为 1。
访问此页面以了解如何 打印两个区间内的所有素数。