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 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

访问此页面以了解如何 打印两个区间内的所有素数

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战