每次确定最前面的一个因子,分治的求后续n-1位因子
#include<bits/stdc++.h>
using namespace std;
int n;
int f(int x){
if(x==1)return 1;
int sum=0;
//分治方程:f(n)=sum{f(k)},k∈[2,x]&&n%k==0
for(int i=2;i<=x;i++){
if(x%i==0){
sum+=f(x/i);
}
}
return sum;
}
int main(){
cin>>n;
cout<<f(n);
return 0;
}