//求最大公约数和最小公倍数
//greatest common divisor; least common multiple
/*
辗转相除法
1.如果b等于0,计算结束,a就是最大公约数;
2.否则,计算a除以b的余数,让a等于b,而b等于那个余数;
3.回到第一步。
a b t
12 18 12
18 12 6
12 6 0
6 0
gcd=6
*/
/*
最小公倍数=两整数的乘积 ÷最大公约数
*/
#include<stdio.h>
int main(int argc,char const *argv[])
{
int m,n;
while(1)
{
scanf("%d%d",&m,&n);
if(m>=0&&m<=1000&&n>=0&&n<=1000)
break;
printf("请重新输入:");
}
int t,a,b;
a=m;
b=n;
while(b)
{
t=a%b;
a=b;
b=t;
}
printf("%d和%d的最大公约数为:%d\n",m,n,a);
printf("%d和%d的最小公倍数为:%d\n",m,n,m*n/a);
return 0;
}4-7 求最大公约数和最小公倍数
最新推荐文章于 2024-01-09 22:57:45 发布
本文介绍了一种使用辗转相除法计算两个整数的最大公约数(GCD)和最小公倍数(LCM)的方法,并提供了一个C语言实现的例子。通过不断交换并取余数的方式,最终找到最大公约数,进而计算出最小公倍数。

3093

被折叠的 条评论
为什么被折叠?



