1.解题思路
最大公约数的算法思想(最小公倍数=两个整数之积/最大公约数)
(1)对于已知两数m,n,使得m>n;
(2)m除以n得余数r;
(3)若 r=0,则n为求得的最大公约数,算法结束;否则执行(4);(4)m*-n,n-r,再重复执行(2)。
例:求m=14,n=6 的最大公约数。
2.C语言代码
#include "stdio.h"
int main(){
// 初始化数值
int m=14, n=6, mn, r;
r = m%n;
mn = m*n;
// 求最小公约数
while (r != 0)
{
m = n;
n = r;
r = m%n;
}
// 打印输出
printf("最小公约数:%d\n", n);
// 求最小公倍数
// 最下公倍数 = 两个整数的积 除以 最大公约数
printf("最下公倍数:%d\n", mn/n);
}