网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1009|回复: 0
打印 上一主题 下一主题

Java求最大公约数和最小公倍数

[复制链接]

97

主题

98

帖子

447

积分

版主

Rank: 7Rank: 7Rank: 7

积分
447
跳转到指定楼层
楼主
发表于 2020-5-18 16:29:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求最大公约数方法:辗转相除法
始终用较大数除以较小数,然后用余数代替较大数

整除时的除数就是最大公约数

举例:222 407求最大公约数
222 407(407除以222余数185)
222 185(222除以185余数37)
222 37 (222除以37余数0)
所以最大公约数为37
求最小公倍数方法:最小公倍数等于两数之积除以最大公约数
public class MultiplesAndConventions {
    //求最小公倍数
    static int minMultiples(int a,int b)
    {
        return (a*b)/
maxConventions(a,b);
    }
    //求最大公约数函数
    static int maxConventions(int a,int b)
    {
        int max = 0;
        if(a<b)
        {   //交换a、b的值
            a=a+b;
            b=a-b;
            a=a-b;
        }
        if(a%b==0)
        {
            max = b;
        }
        while(a % b>0)
        {
            a=a%b;
            if(a<b)
            {
                a=a+b;
                b=a-b;
                a=a-b;
            }
            if(a%b==0)
            {
                max = b;
            }
        }
        return max;
    }
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-12-22 11:30 , Processed in 0.035751 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表