题目描述
数学老师给同学们上课,讲的内容是最大公因数,讲到了欧几里得算法的辗转相除求解。程小盟很快就学会了,但是他又马上想到一个问题,如果求得最大公因数那最小公倍数怎么求呢?通过他的努力终于发现他们之间的关系一下就把代码写出来了。
他举例了一些例子:
两个数 | 最大公因数 | 最小公倍数 |
1,2 | 1 | 2 |
4,6 | 2 | 12 |
25,100 | 25 | 100 |
9,12 | 3 | 36 |
134,187 | 1 | 25058 |
帮助程小盟同学总结完成这个问题的代码。
输入格式
一行2个整数 N,M 空格隔开
对于 30% 的数据,有 1 ≤ N,M≤ 100。
对于 100% 的数据,有 1 ≤N,M≤ 1018
输出格式
一行2个整数,一个是最大公因数,一个是最小公倍数空格隔开。
样例输入content_copy
134 187
样例输出content_copy
1 25058
分类
#include<bits/stdc++.h>
int main()
{
long long a = 0;
long long b = 0;
scanf("%lld %lld", &a, &b);
long long a1 = a;
long long b1 = b;
long long tmp = 0;
while (b1)
{
tmp = a1 % b1;
a1 = b1;
b1 = tmp;
}
printf("%lld ", a1);
printf("%lld ",a*b/a1);
return 0;
}