质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。大于1的自然数若不是素数,则称之为合数。
埃式筛法:
所有的偶数(除2以外)都为合数,所有的奇数不一定为奇数
①先把所有的除2以外的偶数都标记为0,所有的奇数都标记为1;
0,1标记为0,2标记为1;
②用for循环找出奇数中的非素数
③奇数的倍数都不为素数
例:找出101以内所有的素数
const int maxn=1e5+10;
int prime[maxn]; // 质数为0 ,非质数为1
void Find_prime()
{
int t=sqrt(maxn);
prime[0]=prime[1]=1;