大概两个点吧

一个是因数的性质,搜到sqrt(n)即可

一个是如果最后剩下一个1,就不用输出了(特判一下)

#include <iostream>
using namespace std;
int main() {
    int n;cin >> n;
    for(int i = 2;i*i <= n;i ++){
        while( n % i == 0 ){
            cout << i << " ";
            n /= i;
        }
    }if( n != 1 ) cout << n << endl;
    return 0;
}

#牛客春招刷题训练营# + 链接