用C语言编写求一个范围内所有质数的程序
时间: 2024-10-19 09:03:07 浏览: 22
要编写一个C语言程序来找出指定范围内的所有质数,你可以使用Sieve of Eratosthenes算法(埃拉托斯特尼筛法)。这是一种古老而有效的找到小于给定整数n的所有质数的方法。以下是一个简单的实现:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) { // 只需检查到根号即可
if (num % i == 0)
return false;
}
return true;
}
void find_primes_in_range(int start, int end) {
printf("Prime numbers between %d and %d are:\n", start, end);
for (int i = start; i <= end; i++) {
if (is_prime(i))
printf("%d ", i);
}
printf("\n");
}
int main() {
int range_start, range_end;
printf("Enter the range (start, end): ");
scanf("%d %d", &range_start, &range_end);
// 检查输入是否合法
if (range_start > range_end) {
printf("Invalid range! Start should be less than or equal to End.\n");
return 1;
}
find_primes_in_range(range_start, range_end);
return 0;
}
```
在这个程序中,`is_prime()` 函数用于判断一个数字是否为质数,`find_primes_in_range()` 函数则遍历指定范围内的所有数字并调用 `is_prime()` 进行筛选。
运行这个程序时,用户会被要求输入一个范围,例如 1 到 50,然后程序将输出该范围内的所有质数。
阅读全文