因为a与b和b与a mod b的最大公约数相同,可缩小问题规模至一方为0。
最小公倍数为两数乘积除以它们的最大公约数。
#include<cstdio>
using namespace std;
int GCD(int a, int b) {
if (b == 0) {
return a;
} else {
return GCD(b, a % b);
}
}
int main() {
int a, b;
while (scanf("%d%d", &a, &b) != EOF) {
printf("%d\n", GCD(a, b));
}
return 0;
}

京公网安备 11010502036488号