比如18=2*3*3
90=2*3*3*5
每一層傳導
比如90
f(90) 輸出2,繼續f(45)
f(45) 輸出3,繼續f(15)
f(15) 輸出3,繼續f(5)
f(5) 輸出5,繼續f(1)
f(1) n==1,結束
然后一層層回溯回去,也就是歸回去
#include<bits/stdc++.h> using namespace std; int f(int n) { if(n==1) { return 0; } for(int i=2;i<=n;i++) { if(n%i==0) { cout<<i<<endl; f(n/i); return 0; } } } int main() { std::ios::sync_with_stdio(false); int n; cin>>n; f(n); }