#include <cmath>
#include <iostream>
using namespace std;


int main() {
    int n;
    cin >> n;

    int i = 2;
    while(n && i<= sqrt(n)){
        if(n % i == 0){
            cout << i << ' ';
            n /= i;
            continue;
        }
        i ++;
    }
    cout << n << endl;

    return 0;
}
// 64 位输出请用 printf("%lld")

卡bug的地方:

1.while循环没有限定i的边界,理由是搞混了%和/,想着i够大的话,n%i总会==0;

2.没在循环结束后输出n,一没有意识到n的值不断在变,二是没想清楚循环结束时候n的值状态;

3.没有想到i的范围可以算开方(因数不会再比开方大了)