您的位置:首页 > 其它

整数因子分解问题

2014-05-26 22:00 323 查看
大于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共有多少种不同的分解式。

Input

有多组输入数据,每组数据的一行,为一个正整数n( 1 < = n < = 2000000000 )。

Output

输入计算出的分解式的数目。每组数据后输出一个回车。

Sample Input

12

Sample Output

8

#include<iostream>
using namespace std;
int num=0;
void solve(int n)
{
if(n==1)
{
num++;
return;
}
for(int i=n; i>=2; i--)
{
if(!(n%i))
{
solve(n/i);
}
}

}
int main()
{
int n;
cin>>n;
solve(n);
cout<<num<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: