【模板】欧拉筛

#include
#include
#include
#include
using namespace std;
const int maxn=10001;
int n,tot;
int prime[maxn];
bool vis[maxn];
void find_prime(int n)
{
    for(int i=2;i<=n;i++)
    {
        if(!vis[i]) prime[++tot]=i;
        for(int j=1;j<=tot&&prime[j]*i<=n;j++)
        {
            vis[prime[j]*i]=1;
            if(i%prime[j]==0) break;
        }
    }
    return;
}
int main()
{
    scanf("%d",&n);
    find_prime(n);
    for(int i=1;i<=tot;i++)
    cout<' ';
    return 0;
}

原理:

原理1

原理2

原理3

原理4

原理5

你可能感兴趣的:(===数论===,筛法,模板)