跳到主要内容

C 编程:检查数字是否为质数

要理解这个示例,你应该了解以下 C语言编程 主题:

质数是一个正整数,它仅能被 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 和 1 不是质数
// 对非质数,将 flag 设置为 1
if (n == 0 || n == 1)
flag = 1;

for (i = 2; i <= n / 2; ++i) {

// 如果 n 能被 i 整除,则 n 不是质数
// 对非质数,将 flag 设置为 1
if (n % i == 0) {
flag = 1;
break;
}
}

// 对质数,flag 为 0
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

访问此页面,了解如何 打印两个区间之间的所有质数