算数基本定理
任何一个大于1的正整数都能被唯一分解为有限个质数的乘积。
其中是正整数,
是质数,且满足
试除法
结合质数判定的试除法和埃筛,扫描2~之间的每个整数d,假如d能整除n,则从N中除掉所有的因子d,同时累计除去d的个数。
假如d是合数,那么组成他的因子肯定在前面就被除去了,累计的d肯定是质数。组成N,大于的质数最多有1个,假如存在就是最后剩下的N。
int get_primes(int n){ for(int i = 2;i<=n/i;i++){ if(n%i==0){ int k = 0; while(n%i==0){ k++; n/=i; } cout<<i<<"^"<<k<<endl; } } if(n>1) cout<<n<<"^"<<1<<endl; cout<<endl;}