2-11整数因子的分解问题
问题描述:大于1的整数n可以分解为:n=x1*x2...xn。例如,当N=12时,有八种不同的分解式:
12=12 12=3*2*2
12=6*2 12=2*6
12=4*3 12=2*3*3
12=3*4 12=2*2*3
代码:
#include<stdio.h>
int count=1; //他本身就是因子,所以计数从1开始
int Factorization(int a)
{
int i;
for(i=a-1;i>1;i--)
if((a % i)==0) //找出a的因子
{
count++; //计数加一
Factorization(a/i); //找出他的另一个因子
}
return count;
}
void main()
{
int n;
scanf("%d",&n);
printf("%d",Factorization(n));
}
运行截图: