目录
最大公约数和最小公倍数
输入两整数,用搜索法求出它们的最大公约数和最小公倍数。
样例输入:
4 6
样例输出:
2 12
时间限制:
1000
空间限制:
65536
约定:
0<a,b<10^8
思路:
我们首先需要写两个函数,参数是两个整数a和b,作用是求这两个整数的最大公约数和最小公倍数!
1.最大公约数
最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个,而我们今天要求的,就是两个数之间的最大公约数.
我们可以写一个特判,如果max(a,b)%min(a,b)==0成立的话,我们可以直接返回其中小的那个数,不用浪费时间继续找.
我们可以考虑一下枚举的方法,怎么枚举呢?
首先,我们肯定知道,这个最大公约数肯定在1~a和b中较小的数只见,我们就可以枚举:for(int i=1;i<=min(a,b);i++),在循环之中,依次判断a%i==0&&b%i==0,就可以用一个变量Max记录下i的值,当然,a和b可能有很多组最大公约数,我们要找的是其中最大的那个,所以可以在赋值的时候Max=max(Max,i);一下,万一新找到的比前面小怎么办!!!
最后这个函数返回Max就行了.
1.2代码
int check(int a,int b){ //求a和b的最大公约数
int t=min(a,b),Max