php递归求解质因数,求一个数的所有质因数,,我用递归做的,编译通过了,,但是结果不对,,求大神帮忙!!!...

求一个数的所有质因数,,我用递归做的,编译通过了,,但是结果不对,,求大神帮忙!!!

mip版  关注:247  答案:2  悬赏:60

解决时间 2021-01-25 07:40

39fe437a1dc16c6de7656a49ba318086.png

已解决

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;

}

}

最佳答案

0e3e04f0eb002e88357ddd684a898e68.png

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;

}

全部回答

a03f039a130500dc970f189743134966.png

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;按你的算法写了一个 好像没啥错误

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

点此我要举报以上信息!

推荐资讯

大家都在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值