跳到主要内容

C 编程:显示两个区间之间的质数

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

显示两个区间之间的质数

#include <stdio.h>

int main() {
int low, high, i, flag;
printf("请输入两个数字(区间):");
scanf("%d %d", &low, &high);
printf("在%d和%d之间的质数有:", low, high);

// 当low不等于high时进行迭代
while (low < high) {
flag = 0;

// 忽略小于2的数字
if (low <= 1) {
++low;
continue;
}

// 如果low是非质数,则flag为1
for (i = 2; i <= low / 2; ++i) {

if (low % i == 0) {
flag = 1;
break;
}
}

if (flag == 0)
printf("%d ", low);

// 检查下一个数字是否为质数
// 将low增加1
++low;
}

return 0;
}

输出

请输入两个数字(区间):20
50
2050之间的质数有:23 29 31 37 41 43 47

在这个程序中,while 循环迭代了(high-low-1)次。

在每次迭代中,检查 low 是否为质数,并且直到 low 等于 high 时,每次迭代 low 的值增加 1

访问此页面,了解更多关于如何检查一个数字是否为质数的信息。

如果用户首先输入较大的数字,上述程序可能无法按预期工作。你可以通过交换数字来解决这个问题。

当首先输入较大数字时显示两个区间之间的质数

#include <stdio.h>

int main() {
int low, high, i, flag, temp;
printf("请输入两个数字(区间):");
scanf("%d %d", &low, &high);

// 如果low大于high,则交换数字
if (low > high) {
temp = low;
low = high;
high = temp;
}

printf("在%d和%d之间的质数有:", low, high);
while (low < high) {
flag = 0;

// 忽略小于2的数字
if (low <= 1) {
++low;
continue;
}

for (i = 2; i <= low / 2; ++i) {
if (low % i == 0) {
flag = 1;
break;
}
}
if (flag == 0)
printf("%d ", low);
++low;
}

return 0;
}

访问此页面,了解如何通过创建用户自定义函数显示两个区间之间的所有质数