算数基本定理(唯一分解定理)
任何大于1的自然数,都可以唯一分解成有限个质数的乘积
代码:
map <int , int > prime_factor(int n){
map <int, int>ans;
for(int i = 2; i*i <= n; i++){
while(n % i == 0){
++ans[i];
n /= i;
}
}
if(n != 1) ans [n] = 1;
//输出
map<int, int>::iterator iter;
int flag = 0;
for(iter = ans.begin(); iter != ans.end(); iter++)
{
if(flag == 1)cout<<"*";
if(flag == 0)flag = 1;
cout<<iter->first<<'^'<<iter->second;
}
return ans ;
}