一个正整数N>1,必定可以分解为若干质因数相乘,即N=2^x1*3^x2*...*prime^xi,prime<=N
分解时一步步求N mod i , 2<=i<=N,然后N /= i,即可,具体证明算了= =。。因为能分解下去就一直分解,得到的数再mod必定mod是质数。
代码:
int i = 1;
while(n > 1)
{
i++;
while(!(n % i)) //要一直分解下去
{
n /= i;
cout << i;
if(n != 1) cout << "*";
}
}
============================================================