题解 | #求最小公倍数#

求最小公倍数

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

求最大公约数常用的有两种方法, 一是九章算术中的更相减损术:大数减小数直到相等,相等的数即最大公约数,该算法时间复杂度约为O(N); 二是欧几里得的辗转相除法:大数除以小数取余数(相当于模运算),直到余数为零时(也即模运算为零时)的除数(也即模数)就是最大公约数,该算法时间复杂度约为O(logN)。

求最小公倍数的方法:原始数据的乘积除以最大公约数。

#include<stdio.h>
int main(){
    int a,b;
    while(~scanf("%d %d",&a,&b)){
        if(a<b){a=a+b;b=a-b;a=a-b;}  //交换a,b大小
        int c=0,s=a*b;
        while(a%b){
            c=a%b;
            a=b;
            b=c;
        }printf("%d\n",s/b);
    }
}
全部评论

相关推荐

半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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