因式分解

Problem Description

将大于1的自然数N进行因式分解,满足N=a1*a2*a3…*am。
编一程序,对任意的自然数N(1< N<=2,000,000,000),求N的所有形式不同的因式分解方案总数。如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 

Input

输入只有一行,一个整数N。

Output

输出只有一行,一个整数表示自然数N的因式分解方案总数。

Sample Input

12

Sample Output

8

Hint

Source

#include<bits/stdc++.h>
using namespace std;
int sum=1;
void DFS(int n)
{
    for(int i=2;i<n;i++)
    {
        if(n%i==0)
        {
            DFS(n/i);
            sum++;
        }
    }
}
int main()
{
    int n;
    cin>>n;
    DFS(n);
    cout<<sum<<endl;
    return 0;
}

 


版权声明:本文为weixin_43824158原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。