检查一个数是否为质数的 C 程序

在此示例中,您将学习使用 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);

  for (i = 2; i <= n / 2; ++i) {
    // condition for non-prime
    if (n % i == 0) {
      flag = 1;
      break;
    }
  }

  if (n == 1) {
    printf("1 is neither prime nor composite.");
  }
  else {
    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。

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