[codeup 1818最大公约数]
题目:
求最大公约数与最小公倍数
CODE
#include <cstdio>
int gcd(int a,int b){
if(b==0)return a;
return gcd(b,a%b);
}
int lcm(int gcd,int a,int b){
return (a/gcd)*b;
}
int main(){
int a,b;
scanf("%d %d",&a,&b);
int ret_gcd=gcd(a,b);
printf("%d %d\n",ret_gcd,lcm(ret_gcd,a,b));
return 0;
}
注意:
1)注意辗转相除法得最大公约数
2)a*b/gcd为最小公倍数,若为防止溢出使用(a/gcd)*b