题目
输入两个正整数m和n,求其最大公约数和最小公倍数。
题目分析
最大公约数可用欧几里得最大公约数算法来求,最小公倍数为两数乘积与最大公约数的商。
欧几里得GCD算法介绍
欧几里得GCD算法号称人类历史上第一个算法,其涉及一个重要定理——Euclid GCD定理,包括如下两条:
gcd(a,0)=a;
gcd(a,b)=gcd(b,a MOD b)。
通俗一点来说,就是两个数取余,让被除数等于上一轮的除数,除数等于上一轮的余数,若这一轮的除数为0(也就是上一轮的余数为0),则被除数为最大公约数(也就是上一轮的除数),否则就继续取余。
代码
#include <stdio.h>
#include <stdlib.h>