统计质数个数c语言程序
时间: 2024-12-19 12:12:21 浏览: 5
统计一个范围内质数的数量可以使用C语言编写。下面是一个简单的C程序示例,它通过埃拉托斯特尼筛法(Sieve of Eratosthenes)来找出指定范围内的所有质数,并计算它们的数量:
```c
#include <stdio.h>
#include <stdbool.h>
void sieve_of_eratosthenes(int n, bool prime[]) {
for (int i = 0; i <= n; i++) {
prime[i] = true;
}
prime[0] = prime[1] = false;
for (int p = 2; p * p <= n; p++) {
if (prime[p]) {
for (int i = p * p; i <= n; i += p) {
prime[i] = false;
}
}
}
}
int count_primes(int start, int end) {
bool prime[end + 1];
sieve_of_eratosthenes(end, prime);
int count = 0;
for (int i = start; i <= end; i++) {
if (prime[i])
count++;
}
return count;
}
int main() {
int range_start, range_end;
printf("请输入质数范围的起始值: ");
scanf("%d", &range_start);
printf("请输入质数范围的结束值: ");
scanf("%d", &range_end);
int num_primes = count_primes(range_start, range_end);
printf("在 %d 到 %d 的范围内,共有 %d 个质数.\n", range_start, range_end, num_primes);
return 0;
}
```
这个程序首先创建一个布尔数组`prime[]`表示每个数字是否为质数,然后应用筛法剔除非质数。`count_primes`函数会计算给定范围内的质数数量。在`main`函数中,用户会被提示输入范围,然后显示结果。
阅读全文