#include<stdio.h>
#include<string.h>
bool vis[1000000];
int prime[1000000];
int main()
{
int count=0;
memset(vis,false,sizeof(bool));
for(int i=2;i<1000000;i++)
{
if(!vis[i])
{
prime[count++]=i;
}
for(int j=0;j<=count&&i*prime[j]<1000000;j++)
{
vis[i*prime[j]]=true;
if(i%prime[j]==0) break;
}
}
return 0;
#include<string.h>
bool vis[1000000];
int prime[1000000];
int main()
{
int count=0;
memset(vis,false,sizeof(bool));
for(int i=2;i<1000000;i++)
{
if(!vis[i])
{
prime[count++]=i;
}
for(int j=0;j<=count&&i*prime[j]<1000000;j++)
{
vis[i*prime[j]]=true;
if(i%prime[j]==0) break;
}
}
return 0;
}
所得素数存于Prime数组。
本文介绍了一个使用埃拉托斯特尼筛法寻找素数的C语言程序。通过标记合数来逐步筛选出小于100万的所有素数,并将这些素数存储在一个数组中。
6819

被折叠的 条评论
为什么被折叠?



