题解 | #求最小公倍数#

求最小公倍数

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

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

int main() {
    int a, b;
    while (cin >> a >> b) { // 注意 while 处理多个 case
        if(a>b) swap(a,b);
        if(b%a==0||1==a) {cout<<b<<endl; break;}
        int i=2,sum=1;
        while(i<=pow(a,2)){//从较小的一个数中找质因数
            if(0==a%i) {
                while(0==a%i) {
                a/=i,sum*=i;//sum保存当前所有质因数的积
                if(b%i==0) b/=i;//保证b中不包含与a相同的质因数
                if(b%a==0) {sum*=b; continue;}//当b能整除a时,说明a中所有因数必定包含在b中
                }
            }
            ++i;
        }
        cout << sum << endl;
    }
}

全部评论

相关推荐

谁知道呢_:要掉小珍珠了,库库学三年,这个结果
点赞 评论 收藏
分享
牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务