整数分解

来源:百度知道 编辑:UC知道 时间:2024/06/17 03:05:21
例如把8分解成 2*4 2*2*2 4*2 这样
需要输出分解式和可分解的次数

我写了一个计算分解次数的式子 可是得不出来
也不知道是哪里错了
大家帮忙看一看吧

#include <stdio.h>
void integfj(int n)
{
int m=2,d,count=0;
while(m<=n/2&&n>=2)
{
if(n%m==0) {count++;
d=n/m;
integfj(d);}
else m++;
}
printf("%d",count);
}
void main()
{
int n;
printf("shu ru n:\n");
scanf("%d",&n);
integfj(n);
}

改了改,对比一下吧,其实错误挺明显的。

#include <stdio.h>

int count = 0;

void integfj(int n)
{
int m=2,d;
while(m<=n/2&&n>=2)
{
if(n%m==0)
{
count++;
d=n/m;
integfj(d);
n/=m;
}
else m++;
}
}

int main()
{
int n;
printf("shu ru n:\n");
scanf("%d",&n);
integfj(n);
printf("%d",count);
}