题解 | #求最小公倍数#

求最小公倍数

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

#include <stdio.h>

int main() {
    //一个经典的解决最小公倍数的方式是辗转相除法,不过暂时可以不使用
    //尝试一下自己的简单思路看看是否合适;
    int a,b;
    scanf("%d %d",&a,&b);
    if(a>b){
        int tmp=a;
        a=b;
        b=tmp;
    }//保证b总是大的那个;
    long sum=1;
    for(int i=2;i<=a;){
        if(a%i==0&&b%i==0){
            sum*=i;
            a=a/i;
            b=b/i;
        }
        else{
            i++;
        }
    }
    printf("%ld\n",sum*a*b);
    return 0;
}

每次找到公因子,直到找到所有的公因子为止,而后将剩下的直接相乘(其中此时的a一定为1,则得到了对应的最小公倍数)

全部评论

相关推荐

不愿透露姓名的神秘牛友
09-26 20:06
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务