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