****正整数n不同分解式的个数****
对于大于1的正整数n,可以分解为n=x1* x2 …… xm,其中xi>=2。例如n=12时有8种不同的分解,即12=12,12=6 * 2,12=4 * 3,12=3 * 2 * 2,12=2 * 6,12=2 * 3 * 2,12=2 * 2 * 3;设计一个算法求n的不同分解式的个数。(来源于《算法设计与分析(第2版)李春葆》)
这个需要用到函数递归
下面c++的函数体
code:
int fenjie(int x){
if (x==1){
return 1;
int sum = 0;
for(int i=2;i<=x;i++){
if (x%i==0) {
sum+=fenjie(x/i);
}
}
return sum;
}
仅供参考