如何使用辗转相除法求其最大公约数和最小公倍数?

 我来答
friday_collin
2008-12-11 · TA获得超过415个赞
知道小有建树答主
回答量:466
采纳率:100%
帮助的人:339万
展开全部
/*这个程序是我帮别人写的最后没有,先求a b c 的最大公约数yue 再求
d e f 的公倍数bei 然后求即是yue的倍数又是bei的约数的数,里面有公约数和
公倍数的求法你可以参照下 */
#include"stdio.h"
main()
{
int a,b,c,d,e,f,i;
int max,yue=1,beie=1,beif=1,bei=1;
printf("input a b c d e f:\n");
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;

for(i=max;i>=2;i--)

if(a%i==0&&b%i==0&&c%i==0)
{
yue=yue*i;
a=a/i;
b=b/i;
c=c/i;
}

for(i=max;i>=2;i--)
{
if(e%i==0&&d%i==0)
{
beie*=i;
e=e/i;
d=d/i;
}
}
beie=beie*e*d;
for(i=max;i>=2;i--)
if(e%i==0&&f%i==0)
{
beif*=i;
e=e/i;
f=f/i;
}

beif=beif*e*f;

for(i=beie;i>=2;i--)
if(beie%i==0&&beif%i==0)
{
bei*=i;
beie=beie/i;
beif=beif/i;
}

bei=bei*beie*beif;
printf("%d\n",bei);
for(i=yue;i<=bei;i++)
if(i%yue==0&&bei%i==0)
printf("%d\n",i);

}
伊·梵beec
2008-12-11 · TA获得超过2160个赞
知道大有可为答主
回答量:1897
采纳率:0%
帮助的人:1377万
展开全部
举几个例子:
12_8
___8_4 - 能整除,最大公约数4

92_24
___24_20
______20_4 - 能整除,最大公约数4

a_b
__b_a%b (a=a%b;swap(a,b);)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宰澹昔新冬
2019-08-20 · TA获得超过3687个赞
知道大有可为答主
回答量:3046
采纳率:28%
帮助的人:232万
展开全部
"/*这个程序是我帮他人写的最后木有,先求a
b
c
的最大公约数yue
再求
d
e
f
的公倍数bei
之后求即是yue的倍数又是bei的约数的数,里边有公约数和
公倍数的求法你可以参照下
*/
#include"stdio.h"
main()
{
int
a,b,c,d,e,f,i;
int
max,yue=1,beie=1,beif=1,bei=1;
printf("input
a
b
c
d
e
f:\n");
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
for(i=max;i>=2;i--)
if(a%i==0&&b%i==0&&c%i==0)
{
yue=yue*i;
a=a/i;
b=b/i;
c=c/i;
}
for(i=max;i>=2;i--)
{
if(e%i==0&&d%i==0)
{
beie*=i;
e=e/i;
d=d/i;
}
}
beie=beie*e*d;
for(i=max;i>=2;i--)
if(e%i==0&&f%i==0)
{
beif*=i;
e=e/i;
f=f/i;
}
beif=beif*e*f;
for(i=beie;i>=2;i--)
if(beie%i==0&&beif%i==0)
{
bei*=i;
beie=beie/i;
beif=beif/i;
}
bei=bei*beie*beif;
printf("%d\n",bei);
for(i=yue;i<=bei;i++)
if(i%yue==0&&bei%i==0)
printf("%d\n",i);
}"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亢名蔚蓓蕾
2020-05-20 · TA获得超过3901个赞
知道大有可为答主
回答量:3195
采纳率:28%
帮助的人:236万
展开全部
/*这个程序是我帮别人写的最后没有,先求a
b
c
的最大公约数yue
再求
d
e
f
的公倍数bei
然后求即是yue的倍数又是bei的约数的数,里面有公约数和
公倍数的求法你可以参照下
*/
#include"stdio.h"
main()
{
int
a,b,c,d,e,f,i;
int
max,yue=1,beie=1,beif=1,bei=1;
printf("input
a
b
c
d
e
f:\n");
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
for(i=max;i>=2;i--)
if(a%i==0&&b%i==0&&c%i==0)
{
yue=yue*i;
a=a/i;
b=b/i;
c=c/i;
}
for(i=max;i>=2;i--)
{
if(e%i==0&&d%i==0)
{
beie*=i;
e=e/i;
d=d/i;
}
}
beie=beie*e*d;
for(i=max;i>=2;i--)
if(e%i==0&&f%i==0)
{
beif*=i;
e=e/i;
f=f/i;
}
beif=beif*e*f;
for(i=beie;i>=2;i--)
if(beie%i==0&&beif%i==0)
{
bei*=i;
beie=beie/i;
beif=beif/i;
}
bei=bei*beie*beif;
printf("%d\n",bei);
for(i=yue;i<=bei;i++)
if(i%yue==0&&bei%i==0)
printf("%d\n",i);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式