题解 P5736 【【深基7.例2】质数筛】 - HsKr - 洛谷博客 (luogu.com.cn)
ps.题没必要看
bool isprime(int n){ if(n<=1) return false; if(n==2||n==3) return true; if(n%6!=1&&n%6!=5) return false; for(int i=5;i*i<=n;i+=6) if(n%i==0||n%(i+2)==0) return false;//6x+5和6(x+1)+1作为除数 (x从0开始) return true; }
除2,3外,其他所有素数都必须是6n+1或6n+5,
因为
6n+2=2(3n+1),
6n+3=3(2n+1),
6n+4=2(3n+2),都有非1和本身因数,不是素数