如果 a 能被 b 整除,a 就叫做 b 的倍数,b 就叫做 a 的约数。几个整数中公有的约数,就叫做这几个整数的公约数;其中,最大的一个公约数,叫做这几个整数的最大公约数。
例如:24 和 16 的公约数有:1、2、4、8,其中,8 就是 24 和 16 的最大公约数。
同理,几个整数中公有的倍数,就叫做这几个整数的公倍数;其中,最小的一个公倍数,叫做这几个整数的最小公倍数。
例如:4 和 6 的公倍数有:12、24、……,其中,12 就是 4 和 6 的最小公倍数。
现在,假设 a 是大数,b 是小数。a % b 取余,如果余数是 0,则,b 是最大公约数。如果余数不为 0,则把 b 的值给 a,余数给 b,再次进行 a % b 取余。直到余数为 0,即得出最大公约数。
最小公倍数=两个数的积除以它们的最大公约数。
C 语言实现代码如下:
#include <stdio.h>
int func(int m, int n){
int t, a, b;
// 1、将大数置前,小数置后
if (m < n) {
t = m;
m = n;
n = t;
}
a = m;
b = n;
// 2、求最大公约数
while (b != 0) {
t = a % b;
a = b;
b = t;
printf("t = %d, a = %d, b = %d\n", t, a, b);
}
printf("最大公约数:%d\n", a);
// 3、求最小公倍数
return (m*n/a);
}
int main() {
int x, y, z;
printf("请输入两个整数:");
scanf("%d%d", &x, &y);
z = func(x, y);
printf("最小公倍数:%d\n", z);
return 0;
}
运行结果如下:
t = 8, a = 16, b = 8
t = 0, a = 8, b = 0
最大公约数:8
最小公倍数:48
Copyright © 2005-2023 by www.ricensoftwares.com.cn All Rights Reserved.