分解质因数 递归做法(不详细,勿点)
比如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); }