开发者社区> 小黎的培培笔录.> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

(JAVA编程练习):输入两个正整数m和n,求其最大公约数和最小公倍数。

简介: (JAVA编程练习):输入两个正整数m和n,求其最大公约数和最小公倍数。
+关注继续查看

前引:

image

 打卡!打卡!我学习了!你们呢?

哎!每天都不知道干嘛,学习了还能有点安慰,没浪费时间,一不学习,感觉自己就是废了,这世道真不知道怎么了,现在人能吃饱穿暖,时间过得飞快,人也少了以前为了活下去,不被饿死冻死的动力了!


1、题目:

输入两个正整数m和n,求其最大公约数和最小公倍数。


2、数学知识: 

        最大公因数口诀:两个或多个整数共有约数中最大的一个。 最小公倍数:两个或多个整数公有的倍数中除零以外,最小的一个公倍数

        互质的两个数的最大公因数是1,最小公倍数是这两个数的积;两个数成倍数关系时,较小的数是最大公因数,较大的是最小公倍数;一般的情况下两个数的最大公因数,用短除法,除以这两个数的公因数,直到公因数是1为止,所有除数的乘积就是最大公因数,把除数,余数全部相乘就是最小公倍数。


3、运行结果:

image


4、代码:

1、两个关键解析:

        int max=0; //首先初始化为零,存公约数
        
        //公约数从2开始,公约数的最大为两个数中最小的那个,故i<=(a1<a2?a1:a2)
        //a1<a2?a1:a2 为三元运算,判断两个数的最小值
        for(int i=2;i<=(a1<a2?a1:a2);i++) 
        {
            if(a1%i==0 && a2%i==0) //如果两个数同时除尽,则为公约数
            {
                max=i; //由于公约数是从小到大,所以循环到最后一个便是最大公约数
            }
        }

 

        int min=0;//首先初始化为零,存公倍数
 
        /公倍数从两个数的乘积开始,公倍数的最小为两个数中最大的那个,故j>=(a1<a2?a1:a2)
        //a1<a2?a1:a2 为三元运算,判断两个数的最大值
        for(int j=a1*a2;j>=(a1>a2?a1:a2);j--)
        {
            if(j%a1==0 && j%a2==0)  //如果同时除尽两个数,则为公倍数
            {
                min=j; //由于公倍数是从大到小,所以循环到最后一个便是最小公倍数
            }
        }


2、完整代码:

import java.util.Scanner;
 
public class exercise07 {
 
    public static void main(String[] args) {
 
        Scanner s1 = new Scanner(System.in);
        System.out.print("请输入第一个数:");
        int a1 = s1.nextInt();
        System.out.print("请输入第二个数:");
        int a2 = s1.nextInt();
 
        int max=0,min=0;
        for(int i=2;i<=(a1<a2?a1:a2);i++)
        {
            if(a1%i==0 && a2%i==0)
            {
                max=i;
            }
        }
 
        for(int j=a1*a2;j>=(a1>a2?a1:a2);j--)
        {
            if(j%a1==0 && j%a2==0)
            {
                min=j;
            }
        }
 
        System.out.println("最大公约数为:"+max);
        System.out.println("最小公倍数为:"+min);
    }
}


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
java编程思想第四版第十一章总结
容器类被分为两类:Collection和Map
42 0
java编程思想第四版第十章总结
内部类的特性 他允许你把一些逻辑相关的类组织在一起。
19 0
java编程思想第四版第七章总结
实现类的复用通常有两种方式 组合:在新的类中产生现有类的对象 继承:按照现有类的类型来创造新类
31 0
java编程思想第四版第八章总结
多态的含义 面向对象的三大基本特征: 封装,继承,多态。
29 0
java编程思想第四版第九章总结
本章非常重要, 里面的内容涉及到了三个设计模式, 以及接口的有点,掌握这些就是掌握了重点
36 0
java编程思想第四版第六章总结
为什么f要代码重构 第一次代码不一定是完美的, 总会发现更优雅的写法.
32 0
java编程思想第四版第五章总结
构造器的一个重要的作用: 保证对象被使用之前初始化了.
28 0
java学习之高级语法(十五)----- 线程实现方式
java学习之高级语法(十五)----- 线程实现方式
21 0
Java小白踩坑录 - 使用类型擦除来实现伪泛型
Java小白踩坑录 - 使用类型擦除来实现伪泛型
20 0
+关注
小黎的培培笔录.
培培的成长之旅。
60
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载