1.基本思想如图:
从2开始遍历,每找到input的最小因子,将input除以该因子,然后对该input继续从2开始遍历,找到最小因子,如此继续,直到找到变成质数的input为止。
2.基础代码如下:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main (){
int input;
scanf("%d",&input);
vector<int> v; //用来保存相应的因子
int i,m=0;
for(i=2;i<input;i++){
if(input%i==0){
v.push_back(i);
input=input/i;
i=1;//i置1是为了保证进入循环时因子从i=2开始遍历
}
}
v.push_back(input);
//sort(v.begin(),v.end());
while(1){
cout<<v[m++]<<' ';
if(m==v.size()){
break;
}
}
return 0;
}