既然是1000以内的数,我干脆就用穷举法好了,不过真的编的好烂,连我自己都看不过去了。。。。。
#include"stdio.h"
void main()
{
int x1,x2,x3,x4,x5,x6;
int num;
int sum=1;
printf("请输入要分解的数(小于1000):");
scanf("%d",&num);
printf("%d=%d\n",num,num);
for(x1=2;x1<num;x1++)
for(x2=2;x2<num;x2++)
{
if(x1*x2==num)
{
printf("%d=%d*%d\n",num,x1,x2);
sum++;
}
else
continue;
}
for(x1=2;x1<num;x1++)
for(x2=2;x2<num;x2++)
for(x3=2;x3<num;x3++)
{
if(x1*x2*x3==num)
{
printf("%d=%d*%d*%d\n",num,x1,x2,x3);
sum++;
}
else
continue;
}
for(x1=2;x1<num;x1++)
for(x2=2;x2<num;x2++)
for(x3=2;x3<num;x3++)
for(x4=2;x4<num;x4++)
{
if(x1*x2*x3*x4==num)
{
printf("%d=%d*%d*%d*%d\n",num,x1,x2,x3,x4);
sum++;
}
else
continue;
}
for(x1=2;x1<num;x1++)
for(x2=2;x2<num;x2++)
for(x3=2;x3<num;x3++)
for(x4=2;x4<num;x4++)
for(x5=2;x5<num;x5++)
{
if(x1*x2*x3*x4*x5==num)
{
printf("%d=%d*%d*%d*%d*%d\n",num,x1,x2,x3,x4,x5);
sum++;
}
else
continue;
}
for(x1=2;x1<num;x1++)
for(x2=2;x2<num;x2++)
for(x3=2;x3<num;x3++)
for(x4=2;x4<num;x4++)
for(x5=2;x5<num;x5++)
for(x6=2;x6<num;x6++)
{
if(x1*x2*x3*x4*x5*x6==num)
{
printf("%d=%d*%d*%d*%d*%d*%d\n",num,x1,x2,x3,x4,x5,x6);
sum++;
}
else
continue;
}
printf("分解式的总数为:%d\n",sum);
}