显示两个区间之间的质数
#include <stdio.h> int main() { int low, high, i, flag; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Prime numbers between %d and %d are: ", low, high); // iteration until low is not equal to high while (low < high) { flag = 0; // ignore numbers less than 2 if (low <= 1) { ++low; continue; } // if low is a non-prime number, flag will be 1 for (i = 2; i <= low / 2; ++i) { if (low % i == 0) { flag = 1; break; } } if (flag == 0) printf("%d ", low); // to check prime for the next number // increase low by 1 ++low; } return 0; }
输出
Enter two numbers(intervals): 20 50 Prime numbers between 20 and 50 are: 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("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); // swap numbers if low is greather than high if (low > high) { temp = low; low = high; high = temp; } printf("Prime numbers between %d and %d are: ", low, high); while (low < high) { flag = 0; // ignore numbers less than 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; }
访问此页面以了解如何通过创建显示两个区间之间的所有质数一个用户定义的函数