ACM 1175

题目描述 输入两个正整数,求其最小公倍数。
输入 输入以空格分隔的两个正整数。
输出 输出此两数的最小公倍数,末尾输出换行。
样例输入 14 24
样例输出 168

先了解最小公倍数等于两正整数除以最小公倍数;至于最小公倍数的求法我前几篇ACM的blog中都有,可以先翻翻
so easy,一起来看下代码把

/*
题目描述 输入两个正整数,求其最小公倍数。
输入  输入以空格分隔的两个正整数。
输出  输出此两数的最小公倍数,末尾输出换行。
样例输入  14 24
样例输出 168
*/

#include<stdio.h>
int main()
{
    int x,y,z,m,n;
    while(scanf("%d%d",&x,&y)!=EOF) //利用此语句来进行输出多行
    {
        m=x,n=y;                    //最初的x,y值,分别赋给m,n;
        while (y!=0)
        {
            z=x%y;
            x=y;
            y=z;
        }
        printf("%d\n",m*n/x);       //最小公倍数等于两正整数除以最大公约数
    }
    return 0;
}

还有另外一种解法,辗转相减法,也就是将两数反复相减,直至相等,这时相等的数则是两数的最大公约数,最小公倍数也就随之出来了


#include<stdio.h>
int main()
{
    int x,y,z,m,n;
    while(scanf("%d%d",&x,&y)!=EOF) //利用此语句来进行输出多行
    {
        m=x,n=y;                    //最初的x,y值,分别赋给m,n;
        while (x!=y)
        {
            if (x>y)
                x=x-y;
            else if(x<y)
                y=y-x;
        }
        printf("%d\n",m*n/x);       //x为最大公约数,最小公倍数等于两正整数除以最大公约数
    }
    return 0;
}

虽然看起来很简单,但是大家一定要多敲几遍,记住算法,了解语法,自己不看只看条件就能够立马敲出代码,这样才算真正掌握了这道题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值