问题描述:
大于1的正整数n可以分解为:
例如,当n=12时,共有8种不同的分解式:
对于给定的正整数n,编程计算n共有多少种不同的分解式。
输入
数据有多行,给出正整数n(1≤n≤2000000000)。
输出
每个数据输出1行,是正整数n的不同的分解式数量。
输入样例
12
35
输出样例
8
3
int total; //定义为全局变量
void solve(int n)
{
if (n==1) total++; //获得一个分解
else for (int i=2; i<=n; i++)
if (n%i==0) solve(n/i);
}
//主函数main()中数据的读取与调用
int n;
while( scanf("%d",&n)!=EOF)
{
total = 0;
solve(n);
printf("%d\n",total);
}
当n=12时,整数因子分解的递归过程