最大公约数(lcm)

最大公约数(lcm)

https://ac.nowcoder.com/acm/problem/16710

水题

虽然这是个水题,但是还是有一些地方要注意一下,题目说了不能超过ULL的范围,我们都知道求解两个数的最小公倍数就是用a*b/gcd(a,b)。。

但是 !!!

这里不能超过题目给的范围,所以我们就要先相除再相乘,这样处理就不会越界了

第一种解法——利用STL内置函数

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e7 + 10;
int prime[maxn], sum[maxn];
int main()
{
    ll a, b;
    while (~scanf("%lld%lld", &a, &b))
    {
        ll m = __gcd(a, b);
        printf("%lld\n", a / m * b);
    }
}

第二种写法——手写gcd(推荐)

#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
const int maxn = 1e7 + 10;
int prime[maxn], sum[maxn];
ll gcd(ll a, ll b)
{
    return b == 0 ? a : gcd(b, a % b);
}
int main()
{
    ll a, b;
    while (~scanf("%lld%lld", &a, &b))
    {
        ll m = gcd(a, b);
        printf("%lld\n", a / m * b);
    }
}
牛客课后习题题解 文章被收录于专栏

等待蜕变

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 15:19
简历上能写3个月吗?
码农索隆:大胆写,主要你能把实习经历包装好,可以看一下我这篇帖子https://www.nowcoder.com/share/jump/4888395581180798063
点赞 评论 收藏
分享
05-22 12:44
已编辑
门头沟学院 golang
点赞 评论 收藏
分享
06-27 15:29
门头沟学院 Java
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务