#include <math.h> int main() { int n = 0, i= 0, last_pri = 0; scanf("%d",&n); //i 到 n 开方就可,last_pri 上一个质数 for(i = 2; i <= sqrt(n);++i) { if(n % i == 0) { last_pri = i; printf("%d ", last_pri); //提取当前质数 n = n / i; //从上一个质数开始继续寻找 i = last_pri - 1; } } printf("%d",n); return 0; }