1.辗转相除法
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int y = 0;
int small_num = 0;
scanf("%d %d", &a, &b);
while (a%b)
{
y = a%b;
a = b;
b = y;
}
small_num = a*b / b; //最大公倍数:a*b/最大公约数
printf("最大公约数是:%d\n", b);
printf("最小公倍数:%d\n", small_num);
return 0;
}
2.辗转相减法
#include <stdio.h>
int fun(int m, int n)
{
while (m != n)
{
if (m > n)
{
m = m - n;
}
else
{
n = n - m;
}
}
return n;
}
int main()
{
int a = 0;
int b = 0;
int small_num;
scanf("%d %d", &a, &b);
int ret = fun(a, b);
small_num = a*b / ret;
printf("最大公约数:%d\n", ret);
printf("最小公倍数:%d\n", small_num);
}