boolis_prime(int n){if(n <2)returnfalse;for(int i =2; i <= n / i ; i ++)if(n % i ==0)returnfalse;returntrue;}
分解质因数
voiddivide(int n){for(int i =2; i <= n / i ; i ++)if(n % i ==0){int tm=0;while(n%i==0){
n/=i;
tm++;}
cout<<i<<" "<<tm<<endl;}if(n >1) cout<<n<<" "<<1<<endl;}
埃氏筛
voidget_primes(int n){for(int i =2; i <= N ;i ++){if(!vis[i]){
prime[cnt++]= i;for(int j = i+i;j<=n;j+=i) vis[j]=1;}}}
线性筛
voidget_primes(int n){for(int i =2; i <= n ;i ++){if(!vis[i]) prime[cnt++]= i;for(int j =0;prime[j]<= n / i; j++){
vis[prime[j]*i]=1;if(i%prime[j]==0)break;}}}
判断质数bool is_prime(int n){ if(n < 2) return false; for(int i = 2; i <= n / i ; i ++ ) if(n % i == 0) return false; return true;}分解质因数void divide(int n){ for(int i = 2; i <= n / i ; i ++ ) if(n % i == 0)