判断101~200之间有多少个素数,并输出所有素数。用C语言实现
时间: 2024-10-20 18:05:03 浏览: 30
在C语言中,我们可以使用Sieve of Eratosthenes(埃拉托斯特尼筛法)来找出101到200之间的素数。这是一种古老的用于查找一定范围内所有素数的有效算法。以下是简单的C语言代码实现:
```c
#include <stdio.h>
#include <stdbool.h>
void findPrimes(int start, int end) {
bool isPrime[end - start + 1];
memset(isPrime, true, sizeof(isPrime));
for (int p = 2; p * p <= end; ++p) {
// 如果isPrime[p]非零,说明p是素数
if (isPrime[p]) {
for (int i = p * p; i <= end; i += p)
isPrime[i - start] = false;
}
}
printf("在%d到%d之间的素数有:\n", start, end);
for (int p = start; p <= end; p++) {
if (isPrime[p - start])
printf("%d ", p);
}
printf("\n");
}
int main() {
findPrimes(101, 200);
return 0;
}
```
这段代码首先创建一个布尔数组`isPrime[]`,初始化为所有元素都为`true`,表示它们都是素数。接着从2开始,遍历到sqrt(end),对于每个素数,将其倍数标记为合数(不是素数)。最后,打印出在指定范围内的素数。
运行此程序会输出101到200之间的素数列表。
阅读全文