题目描述
整数因子分解问题。
大于1
的正整数n
可以分解为:n=x1*x2*…*xm
。例如,当n=12
时,共有8
种不同的分解式:
12=12;
12=6*2;
12=4*3;
12=3*4;
12=3*2*2;
12=2*6;
12=2*3*2;
12=2*2*3。
对于给定的正整数n
,计算n
共有多少种不同的分解式。
样例输入
12
样例输出
8
解题代码
#include <iostream>
using namespace std;
int fun(int a, int b)
{
if(a == 1) return 1;
if(b == 1) return 0;
if(a % b == 0) return fun(a / b, b) + fun(a, b - 1);
else return fun(a, b - 1);
}
int main()
{
int a;
cin >> a;
Count(a);
cout << fun(a, a) << endl;
return 0;
}