c 语言求100内的素数个数
时间: 2024-10-22 17:22:59 浏览: 38
汇编语言求100 以内的素数
5星 · 资源好评率100%
C语言求100以内的素数个数,可以使用经典的“埃拉托斯特尼筛法”(Sieve of Eratosthenes)。以下是简单的步骤和代码实现:
1. 初始化一个大小为101的布尔数组isPrime,所有元素设为true,因为我们将从2开始检查,认为2之前的所有数字都是合数。
2. 遍历从2到√100(取整,因为大于这个范围的因子一定小于它本身),对于每个素数i,将isPrime[i]后面的数都标记为合数,因为它们能被i整除,所以不是素数。例如,从i²开始的倍数就不再需要检查了。
3. 最后,统计isPrime数组中值为true的位置,即为素数个数。因为100是包含在内的,所以如果isPrime[100]也为true,素数个数加一。
下面是C语言的代码示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n = 100;
int isPrime[n+1];
for (int i=0; i<=n; i++) {
isPrime[i] = 1;
}
// 筛选素数
for (int i=2; i*i <= n; i++) {
if (isPrime[i]) { // 如果当前i是素数
for (int j=i*i; j<=n; j+=i) {
isPrime[j] = 0; // 标记其倍数为合数
}
}
}
// 统计并打印素数个数
int count = 0;
for (int i=2; i<=n; i++) {
if (isPrime[i]) {
count++;
printf("%d ", i); // 打印素数
}
}
printf("\nTotal prime numbers in the range are: %d\n", count);
return 0;
}
```
阅读全文