分解质因子
这个需要素数筛
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=4e5+100;
int prime[maxn];
int biaoji[maxn];
int cnt;
void getPrime(){
for(int i=2;i<maxn;i++){
if(!biaoji[i]){
prime[++cnt]=i;
}
for(int j=1;j<=cnt&&i*prime[j]<maxn;j++){
biaoji[i*prime[j]]=1;
if(i%prime[j]==0){
break;
}
}
}
}
int main(){
getPrime();
int n;
cin>>n;
for(int i=1;prime[i]*prime[i]<=n;i++){
int cnt=0;
while(n%prime[i]==0){
cnt++;
n/=prime[i];
}
if(cnt)
cout<<prime[i]<<" "<<cnt<<endl;
}
if(n!=1){
cout<<1<<" "<<n<<endl;
}
cout<<endl;
return 0;
}