跳到主要内容

C 编程:使用函数显示区间间的质数

要理解这个示例,你应该具备以下C语言编程相关知识:

在查看此示例之前,请确保你已经访问了以下教程:

两个整数之间的质数

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

int n1, n2, i, flag;

printf("请输入两个正整数:");
scanf("%d %d", &n1, &n2);

// 如果n1大于n2,则交换它们的值
if (n1 > n2) {
n1 = n1 + n2;
n2 = n1 - n2;
n1 = n1 - n2;
}

printf("在%d和%d之间的质数有:", n1, n2);
for (i = n1 + 1; i < n2; ++i) {

// 如果i是质数,flag将等于1
flag = checkPrimeNumber(i);

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

return 0;
}

// 用户自定义函数检查质数
int checkPrimeNumber(int n) {
int j, flag = 1;

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

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

return flag;
}

输出

请输入两个正整数:12
30
1230之间的质数有:13 17 19 23 29

说明

  1. 在这个程序中,我们打印出 n1n2 之间的所有质数。如果 n1 大于 n2,我们交换它们的值
if (n1 > n2) {
n1 = n1 + n2;
n2 = n1 - n2;
n1 = n1 - n2;
}
  1. 然后,我们从 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);
}
}

  1. 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;
}