题解 | #求最小公倍数#

求最小公倍数

https://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;

vector<int> func(int m, int n){
    vector<int> v(m, 0);

    for(int i=2;i<=sqrt(m);i++){
        if (n % i ==0 && m % i ==0){
            v[i-1]++;
        }
    }

    return v;
}

int main() {
    int a, b;
    int ans;
    while (cin >> a >> b) { // 注意 while 处理多个 case

        int A = max(a, b);
        int B = min(a, b);

        if (A%B==0){
            ans = A;
        }else{
            ans = A*B;
            vector<int> v=func(A, B);
            for(int i=2; i<=sqrt(A); i++){
                if (v[i-1]>0){
                    ans = ans / i;
                }
            }
        }


        cout << ans << endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-22 11:33
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
07-24 19:01
门头沟学院 Java
后天笔试,又要开始做题了
Sairus:明天10:00笔试
投递京东等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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