#include <iostream> using namespace std; void divide(int x) { for (int i = 2; i <= x / i; i ++ ) { if (x % i == 0) { /* 条件满足时,则可得[2, i - 1]都不是x的因子,但是i是x的一个因子,故x不是质数 * 但是由于循环条件是 x / i,则可知[2, i - 1]同样也不是i的因子,即i是质数 * 即当if条件满足时,i是x的质因子 */ int s = 0; while (x % i == 0) x /= i, s ++ ; while (s -- ) printf("%d ", i); } } if (x > 1) printf("%d", x); } int main() { int x; cin >> x; divide(x); return 0; }