任意一个正整数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;
}