1.辗转相除法:
辗转相除法(又称欧几里得算法)是一种求最大公因数的方法,它的基本思想是:两个整数的最大公因数等于其中较小的数和两数相除的余数的最大公因数。
#include <stdio.h>
int gcd(int x, int y) {
while (y != 0) {
x %= y;
y = 0;
}
return x;
}
int lcm(int x, int y) {
if (x == 0 || y == 0) return 0;
return (x * y) / gcd(x, y);
}
int main() {
int x, y;
printf("请输入两个整数:");
scanf("%d%d", &x, &y);
printf("它们的最大公约数是:%d\n", gcd(x, y));
printf("它们的最小公倍数是:%d\n", lcm(x, y));
return 0;
}
2.更相减损术:
任意给定两个正整数,以较大的数减较小的数,然后把所得的差与较小的数比较,并以大数减小数,直到所得的减数和差相等为止
#include <stdio.h>
int gcd(int a, int b) {
if (a == 0) return b;
if (b