将大于1的自然数N进行因式分解,计算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
输入格式
一个整数N (1≤N≤2000000000)
输出格式
N的因式分解方案总数。
样例
输入样例
12
输出样例
8
代码:
#include<bits/stdc++.h>
using namespace std;
int n,sum = 1;
//递归因式分解
int f(int n){
for(int i = 2;i<n;i++){
if(n%i==0){
//如果能分解,再进一步进行分解
f(n/i);
sum++;
}
}
}
int main(){
cin>>n;
//调用函数
f(n);
cout<<sum;
}