C程序显示两个数字之间的所有质数
在此示例中,您将学习如何打印用户输入的两个数字之间的所有质数。
要理解此示例,您应该了解以下C语言编程主题:
显示两个间隔之间的质数#include
int main() {
int low, high, i, flag;
printf("输入两个数字(间隔): ");
scanf("%d %d", &low, &high);
printf("%d和%d之间的质数为: ", low, high);
//迭代直到low 不等于 high
while (low
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;
}
return 0;
}
输出结果输入两个数字(间隔): 20
50
20和50之间的质数为: 23 29 31 37 41 43 47
在此程序中,while循环被迭代(high-low-1)次。
在每次迭代中,检查low是否为质数,low的值增加1直到low等于high。
访问此页面以了解有关如何检查数字是否为质数的更多信息。
如果用户首先输入较大的数字,则上述程序将无法正常工作。您可以通过交换数字来解决此问题。
当较大的数字先输入时,显示质数#include
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
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;
}