求0-100000以内素数的个数,C或c++版本
时间: 2024-05-05 21:18:58 浏览: 94
你好!根据你的要求,我可以为你提供一段 C 代码来求解0-100000以内素数的个数。以下是代码:
```
#include <stdio.h>
int main()
{
int prime[100001] = {0};
prime[0] = prime[1] = 1; // 0和1不是素数
for(int i = 2; i <= 100000; i++)
{
if(prime[i] == 0) // 如果当前数未被标记为非素数
{
for(int j = 2 * i; j <= 100000; j += i) // 将该数的倍数标记为非素数
{
prime[j] = 1;
}
}
}
int cnt = 0;
for(int i = 0; i <= 100000; i++)
{
if(prime[i] == 0) cnt++; // 统计素数的个数
}
printf("0-100000以内素数的个数为:%d\n", cnt);
return 0;
}
```
这段代码首先定义了一个大小为100001的素数数组,数组下标表示数字,数组的值表示该下标对应的数字是否为素数(0表示是素数,1表示不是素数)。接着,程序从2开始遍历到100000内的所有数,如果当前数未被标记为非素数,则将该数的倍数标记为非素数。最后再遍历素数数组,统计0-100000内素数的个数并输出即可。
希望这个代码能帮到你,如果还有其他问题,可以继续问我哦~
阅读全文