欧拉筛素数模板

bool isprime[10000010];
int prime[10000], cnt = 0;

void getprime(int n)
{
	memset(isprime, 1, sizeof(isprime));
	isprime[1] = 0;
	for(int i = 2; i <= n; i++)	{
		if(isprime[i])
			prime[++cnt] = i;
		for(int j = 1; j <= cnt && i * prime[j] <= n; j++) {
			isprime[i * prime[j]] = 0;
			if(i % prime[j] == 0)
				break;
		}
	}
}

  一篇很好的博客:https://www.luogu.com.cn/blog/cicos/notprime

原文地址:https://www.cnblogs.com/ACM-Epoch/p/13617431.html