题目:
大于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共有多少种不同的分解式。
#include <iostream>
using namespace std;
int t=0;
void solve(int n)///对n的每个因子进行递归收索
{
if(n==1)
t++;
else
{
for(int i=2;i<=n;i++)
{
if(n%i==0)
solve(n/i);
}
}
}
int main()
{
cout << "输入正整数n:";
int n;
cin>>n;
solve(n);
cout << endl<<"输出分解的总个数:"<<t;
return 0;
}
运行结果如下: