一、两个的最大公约数
从栗子入手
假设我们有两个数9,21
现在我们求9,21的最大公约数:
21 % 9 = 3
9 % 3 = 0
现在我们开始写出表达式
较大数b = 较小数(上一轮)
较小数a = 余数(上一轮)
a,b(a < b)求最大公约数
while(b % a != 0)
{
t = b % a ;
b = a;
a = t;
}
printf("%d", a);
#include<stdio.h>
int main()
{
int a,b,t;
scanf("%d %d",&a,&b);
while(b % a != 0)
{
t = b % a ;
b = a;
a = t;
}
printf("%d", a);
}
二、求三个的最大公约数
#include <stdio.h>
int gcd(int a, int b)
{
return a%b == 0?b:gcd(b,a%b);
}
//主函数
int main()
{
int a = 0, b = 0, c = 0, ab = 0;
scanf("%d%d%d",&a,&b,&c);
ab = a*b/gcd(a,b); //得到a,b两数的最小公倍数 公式法 :要先求出最大公约数 用两个数的乘积除以最大公约数即可
printf("%d",ab*c/gcd(ab,c)); //得到ab,c两数的最小公倍数
return 0;
}