求一个数的所有质因数,,我用递归做的,编译通过了,,但是结果不对,,求大神帮忙!!!
mip版 关注:247 答案:2 悬赏:60
解决时间 2021-01-25 07:40
已解决
2021-01-24 11:50
//求一个数的质因数
#include
int factors(int n);
int main()
{
int j;
printf("please enter number:\n");
scanf("%d",&j);
printf("the number is :");
factors(j);
}
int factors(int n)
{
int i, k;
for(i = 2; i < n; i++)
if(n % i == 0)
{
k = i;
break;
}
printf(" %d ",k);
if(k < n)
{
n = n / k;
factors(n);
}
else
{
return 0;
}
}
最佳答案
2021-01-24 12:50
//这样改:
#include
int factors(int n);
int main()
{
int j;
printf("please enter number:\n");
scanf("%d",&j);
factors(j);
printf("\b\b=%d",j);
}
int factors(int n)
{
int i, k;
for(i = 2; i < n; i++)
if(n % i == 0)
{
k = i;
break;
}
printf(" %d * ",k);
if(k < n)
{
n = n / k;
factors(n);
}
else
{
return n;
}
}
//递归没起到应有的作用,我重做了一个,你看看。
#include
int factors(int n,int m);
int main()
{
int j;
printf("please enter number:\n");
scanf("%d",&j);
printf("%d=",j);
printf("%d",factors(j,2));
}
int factors(int n,int m)
{
if(n>m)
{
if(n%m==0)
{
printf("%d*",m);
factors(n/m,m);
}
else
{
factors(n,m+1);
}
}
else
return n;
}
全部回答
1楼
2021-01-24 14:12
function TForm1.f(n: Integer): Integer;
var
I: Integer;
begin
if n < 2 then Exit;
for I := 2 to n do
begin
if n mod I = 0 then
begin
Edit2.Text := Edit2.Text + ',' + IntToStr(I); //输出
Break;
end;
end;
n := n div I;
if n = 1 then
Exit
else
f(n);
end;按你的算法写了一个 好像没啥错误
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上信息!
推荐资讯
大家都在看