C语言使用函数显示区间内素数的程序

要理解这个示例,您应该了解以下 C 编程 主题


在查看此示例之前,请确保您已学习了以下教程


两个整数之间的素数

#include <stdio.h>
int checkPrimeNumber(int n);
int main() {

  int n1, n2, i, flag;

  printf("Enter two positive integers: ");
  scanf("%d %d", &n1, &n2);

  // swap n1 and n2 if n1 > n2
  if (n1 > n2) {
    n1 = n1 + n2;
    n2 = n1 - n2;
    n1 = n1 - n2;
  }

  printf("Prime numbers between %d and %d are: ", n1, n2);
  for (i = n1 + 1; i < n2; ++i) {

    // flag will be equal to 1 if i is prime
    flag = checkPrimeNumber(i);

    if (flag == 1) {
      printf("%d ", i);
    }
  }
  
  return 0;
}

// user-defined function to check prime number
int checkPrimeNumber(int n) {
  int j, flag = 1;

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

    if (n % j == 0) {
      flag = 0;
      break;
    }
  }

  return flag;
}

输出

Enter two positive integers: 12
30
Prime numbers between 12 and 30 are: 13 17 19 23 29

解释

1.在此程序中,我们打印 n1n2 之间的所有素数。如果 n1 大于 n2,我们 交换它们的值

if (n1 > n2) {
  n1 = n1 + n2;
  n2 = n1 - n2;
  n1 = n1 - n2;
}

2.然后,我们从 i = n1 + 1i = n2 - 1 运行一个 for 循环。

在每次循环迭代中,我们使用 checkPrimeNumber() 函数检查 i 是否为素数。

如果 i 是素数,我们就打印它。

for (i = n1 + 1; i < n2; ++i) {
  flag = checkPrimeNumber(i);
  if (flag == 1)
    printf("%d ", i);
  }
}

3.checkPrimeNumber() 函数包含用于 检查数字是否为素数 的代码。

int checkPrimeNumber(int n) {
  int j, flag = 1;
  for (j = 2; j <= n / 2; ++j) {
    if (n % j == 0) {
      flag = 0;
      break;
    }
  }
  return flag;
}
你觉得这篇文章有帮助吗?

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

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

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