1、算术基本定理(唯一分解定理)
每个正整数都能够唯一的表示成它的质因数的乘积
2、n中最多只有一个大于根号n的质因子
因为如果有两个以上的话,乘积会大于n。因此只需要从2遍历到根号n即可。
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=2;i<=n/i;i++){
if(n%i==0){
while(n%i==0){
cout<<i<<" ";
n=n/i;
}
}
}
if(n>1) cout<<n<<endl;
return 0;
}
思路:在2到根号n中枚举,遇到质因子就将其除净,最后如果n>1,就是那个大于根号n的质因子。