永发信息网

求两个数的所有公约数

答案:2  悬赏:30  手机版
解决时间 2021-02-27 06:01
  • 提问者网友:富士山上尢
  • 2021-02-26 16:08
设计一个函数,先返回最大公约数,以后只要再使用相同参数,就会返回更小的公约数,用c语言编程,怎么写呀?
最佳答案
  • 五星知识达人网友:动情书生
  • 2021-02-26 17:23
嗯,实现当然是可以实现的,只要在函数体内部开一个静态数组存储每次的参数及返回值就可以了。
int next_lcd(int a, int b)
{
static int t=0, as[MAX], bs[MAX], ans[MAX];
for (int i=0; i {
next_ans=lcd_less_than_x(a, b, ans[i]);
ans[i]=next_ans;
return next_ans;
}
next_ans=lcd(a, b);
as[t]=a;
bs[t]=b;
ans[t++]=next_ans;
return next_ans;
}
全部回答
  • 1楼网友:夜余生
  • 2021-02-26 18:47
设有两个数a,b,它们的最大公约数是m,将a因式分解得a=m*a1*a2*a3*……,将b因式分解得b=m*b1*b2*b3*.......,将m因式分解得m=m1*m2*m3*.......,将其代入前两式,得a=m1*a1*m2*a2*m3*a3*.............,b=m1*b1*m2*b2*m3*b3*..........,因为m1,m2,m3,........为m约数,则m1,m2,m3,........也为a,b公约数。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯