整数因子分解

大于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共有多少种不同的分解式。

输入

数据有多行, 给出正整数n(1<=n<=2000 000 000).

输出

每个数据输出一行,是正整数n的不同的分解式数量。

输入样例

12

35

输出样例

8

3

 

附上代码:

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 
 5 int total;
 6 void solve(int n)
 7 {
 8     if(n==1) total++;
 9     else for(int i=2; i<=n; i++)
10             if(n%i==0) solve(n/i);
11 }
12 
13 int main()
14 {
15     int n;
16     while(~scanf("%d",&n))
17     {
18         total=0;
19         solve(n);
20         printf("%d\n",total);
21     }
22     return 0;
23 }

 

posted @ 2016-01-18 14:53  lucky_少哖  阅读(540)  评论(0编辑  收藏  举报