int main()
{
int a = 0;
int b = 0;
int i = 0;
int max = 0;//存放两数中较大的数
int min = 0;//存放两数中较小的数
scanf("%d %d", &a, &b);
i = (a < b ? a : b);
max = (a > b ? a : b);;//求出两数中较大的数
min = i;//求出两数中较大的数
while (i)
{
if ((max % i == 0) && (min % i == 0))
break;
i--;
}
printf("最大公约数:%d", i);
return 0;
}
辗转相除法
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d", &a, &b);
while (a % b)
{
c = a % b;
a = b;
b = c;
}
printf("最大公约数:%d", b);
return 0;
}
利用辗转相除法求最小公倍数
两数之积/最大公约数=最小公倍数
int main()
{
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int ret = 0;
scanf("%d %d", &a, &b);
d = a * b;
while (a % b)
{
c = a % b;
a = b;
b = c;
}
ret = d / b;
printf("最小公倍数:%d", ret);
return 0;
}