『算法-ACM竞赛-数学-数论』素数 『算法-ACM 竞赛-数学-数论』素数ACM 常用模板合集定义判断: 12345678bool isPrime (int n){ for(int i=2;i*i<=n;i++) { if(n%i==0) return false; } else return false;} 埃氏筛法 123456789101112131415int primes[N],cnt;bool bprime[N];void getPrime(int n){ memset(bprime,false,sizeof(bprime)); bprime[0]=true; bprime[1]=true; for(int i=2;i<=n;i++){ if(!bprime[i]){ prime[cnt++]=i; for(LL j=i*2;j<=n;j+=i) bprime[j]=true; } }} 12345678910111213141516int primes[N],cnt;bool bPrime[N];void getPrimes(int n){ memset(bPrime,false,sizeof(bPrime)); for(int i=2;i<=n;i++){ if(!bPrime[i]) primes[cnt++]=i; for(int j=0;j<cnt&&i*primes[j]<n;j++){ bPrime[i*primes[j]]=true; if(i%primes[j]==0) break; } }} 线筛(欧式筛) 123456789101112131415161718192021222324252627#include<iostream>#include<bitset>using namespace std;bitset<100000010>v;int prime[6000001];int m=0;void primes(int n){ for(int i=2; i*i<=n; i++) { if(!v[i]) { for(int j=i*i; j<=n; j+=i) v[j]=1; } } for(int i=2; i<=n; i++) if(!v[i]) prime[m++]=i; for(int i=0; i<m; i++) cout<<prime[i]<<endl;}int main(){ primes(1e3+20); return 0;} 算法 > ACM竞赛 > 数学 > 数论 『算法-ACM竞赛-数学-数论』素数 https://chiamzhang.github.io/2024/06/29/『算法-ACM竞赛-数学-数论』素数/ Author Chiam Posted on June 29, 2024 Licensed under 『算法-ACM竞赛-数学-数论』组合数(卢卡斯+扩展卢卡斯)模板 Previous 『算法-ACM竞赛-数学-数论』积性函数(初步) Next Please enable JavaScript to view the comments