任意一个正整数n最多只有一个质因数大于根号n。
#include <iostream>
#include <vector>
#include <cmath>
void FindAllFactor(int num, std::vector<int>& res){
for(int i = 2; i <= sqrt(num); ++i){
while(num % i == 0){
res.push_back(i);
num /= i;
}
}
if(num != 1){
res.push_back(num);
}
}
int main(int argc, char* argv[]){
int num;
std::cin >> num;
std::vector<int> res;
FindAllFactor(num, res);
for(int i : res){
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}