首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

数因式分解的个数

2012-09-23 
求一个数因式分解的个数比如8 2 x 4 2 x 2 x 2共2种除去1 x 8这种情况,不管因子出现的顺序 8 2 x 4

求一个数因式分解的个数
比如8 = 2 x 4 = 2 x 2 x 2;共2种
除去1 x 8这种情况,不管因子出现的顺序 8 = 2 x 4 和 8 = 4 x 2算一种。 
12 = 2 x 6 = 2 x 2 x 3;两种
20 = 2 x 10 = 2 x 2 x 5 = 4 x 5;共3种

[解决办法]
#include "stdio.h"
#include "stdlib.h"
void Parse(int num,int* array,int &count);
int main(){
int num=0;
int *array;
int count=0;
array=(int*)malloc(100*sizeof(int));
printf("请输入一个数字\n");
scanf("%d",&num);
printf("%d",num);
Parse(num,array,count);
free(array);
array=NULL;
return 0;
}
void Parse(int num,int* array,int &count){
printf("=");
int i=2;
while(i*i<num){
if(num%i==0){
if(count!=0){
for(int j=0;j<count;j++)
printf("%d*",array[j]);
}
array[count]=i;
count++;
printf("%d*%d",i,num/i);
Parse(num/i,array,count);
}
i++;
}
count--;
}

递归实现,大侠们轻拍~

热点排行