关于欧拉筛法的使用(C语言简单实现)
对于素数的筛选一共有几种使用方法
而最最有效的方法就是著名的欧拉筛法
代码如下
#include<stdio.h>
#include<stdbool.h>
int main(void)
{
int N=1000007;
int n;
scanf ("%d",&n);
bool number[N+1];
int i,j;
int shu=0;
memset(number,true,sizeof(number));
for(i=2;i<=sqrt(N);i++)
{
if(number[i]==true)
{
for(j=i*i;j<=N;j+=i)
{
number[j]=false;
}
}
}
for(i=2;i<N+1;i++)
if(number[i]==true)
{
shu++;
if(shu==n){
printf ("%d",i);
}
}
return 0;
}
保证每个数只被最小的因数筛去