用C语言求出1到100内的素数的总数
时间: 2024-10-11 22:02:35 浏览: 30
在C语言中计算1到100之间的素数总数,可以采用常见的“筛法”算法,如埃拉托斯特尼筛法(Sieve of Eratosthenes)。以下是简单的步骤:
1. 创建一个布尔型数组`isPrime[101]`,初始化所有元素为`true`,表示它们都是素数。
2. 遍历从2开始到100的每个数(因为除了1之外,最大的可能素数是100):
- 如果当前数字`i`是素数,则将它的倍数全部标记为非素数。这可以通过遍历`i*i`到100,并把`isPrime[j]`设为`false`完成。
3. 最后统计`isPrime`数组中值为`true`的元素数量,即为素数的数量。
下面是对应的C语言代码示例:
```c
#include <stdio.h>
#define MAX 101
int main() {
int isPrime[MAX] = {0};
for (int i = 2; i * i <= MAX; i++) {
if (isPrime[i]) {
// 标记 i 的倍数为非素数
for (int j = i * i; j <= MAX; j += i) {
isPrime[j] = 0;
}
}
}
int primeCount = 0;
for (int i = 2; i < MAX; i++) {
if (isPrime[i]) {
primeCount++;
}
}
printf("1到100内有 %d 个素数。\n", primeCount);
return 0;
}
```
阅读全文