在查看此示例之前,请确保您已学习了以下教程
两个整数之间的素数
#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.在此程序中,我们打印 n1 和 n2 之间的所有素数。如果 n1 大于 n2,我们 交换它们的值
if (n1 > n2) {
n1 = n1 + n2;
n2 = n1 - n2;
n1 = n1 - n2;
}
2.然后,我们从 i = n1 + 1
到 i = 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;
}