唯一分解定理
百度百科:
一个数n肯定能被分解成 n=p1a1 * p2a2 . . .*pnan
模板
int prime_fac[N],cnt=0,sum;
int prime_index[N];
void fact(int n){
for(int i=2;i*i<=n;i++){
if(n%i==0){
cnt++;
prime_fac[cnt]=i;
prime_index[cnt]=0;
}
while(n%i==0){
n/=i;
prime_index[cnt]++;
sum++;
}
}
if(n!=1){
cnt++;
prime_fac[cnt]=n;//底数
prime_index[cnt]=1;//指数
sum++;
}
}
prime_fac[cnt]存放的底数,都是质数
prime_index[cnt]存放的指数,也就是每个对数对应的指数