题目描述
输入两个正整数m和n,求其最大公约数和最小公倍数。
提示,求最大公约数用一个函数实现。本题求最大公约数必须用高效算法,如辗转相除法,朴素算法要超时。
输入格式
第1行:两个非整数,值在0~INTMAX范围内。INTMAX大约是21亿。
输出格式
第1行:两个整数,第一个是最大公约数,第二个是最小公倍数。注意最小公倍数可能超过int的范围,因此要用long long
样例
样例输入
复制42 70
样例输出
复制14 210
____________________________________________________________________________
日常发作业题解。
也是简单到爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆表的题
写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
____________________________________________________________________________
#include <bits/stdc++.h>
using namespace std;
long long n,m;
int node(int x,int y){int r=x%y;while(r!=0){x=y,y=r;r=x%y;}return y;
}
int main(){cin>>n>>m;cout<<node(n,m)<<" "<<n*m/node(n,m);
}