输入任意两个整数,输出他们的最大公约数和最小公倍数

package com.qianfeng.day04;import java.util.Scanner;public class Work04 {public static void main(String[] args) {Scanner input = new Scanner(System.in);int a,b;    //输入的两个数int as,bs;  //备份两个数System.out.print("请您输入两个整数:");a = input.nextInt();b = input.nextInt();as = a;bs = b;//方法一:穷举法System.out.println("方法一: 穷举法");for(int i = (a>b?b:a); i >= 1; i--) {if(a % i == 0 && b % i == 0) {System.out.println("最大公因数为:" + i);break;}}for (int i = (a>b?a:b); i <= a*b; i++) {if(i % a == 0 && i % b == 0) {System.out.println("最小公倍数为:" + i + "\n");break;}}//方法二:相减法int sum;       //两数之和sum = a * b;System.out.println("方法二:相减法");while (true) {if(a != b) {if (a > b) {a = a - b;} else {b = b - a;}} else {break;}}System.out.println("最大公因数为:" + a);System.out.println("最小公倍数为:" + sum/a + "\n");//方法三:辗转相除法System.out.println("方法三:辗转相除法");int remainder1,remainder2 = 1,remainder = 1;      //用于储存余数int max,min;        //储存两个数的最大和最小值int gcd,lcm;      //分别代表最大公因数和最小公倍数max = as>bs?as:bs;min = as<bs?as:bs;remainder1 = max % min;if (remainder1 != 0) {remainder2 = min % remainder1;}if (remainder1 == 0) {gcd = min;} else if(remainder2 == 0) {gcd = remainder1;} else {while(remainder != 0) {remainder = remainder1 % remainder2;remainder1 = remainder2;remainder2 = remainder;}gcd = remainder1;            }lcm = sum/gcd;System.out.println("最大公因数为:" + gcd);System.out.println("最小公倍数为:" + lcm + "\n");input.close();}
}

解释:
方法一:穷举法
最大公因数的取值范围一定在,1到两个数之间小的那一个范围内
最小公倍数的取值方位一顶在,两个数之间最大的哪一个到两数相乘范围内
然后直接通过i++的方式寻找,进行枚举

方法二:相减法

  1. 两数中最大的那个数减去最小的那个数,得到了一个值
  2. 然后让得到的这个值去替换两个数中大的那个
  3. 然后比较替换后的两个数,重复第一个步骤
  4. 当两个数相等的时候即为最大公因数
  5. 最后将刚开始的两个数相乘再除以最大公因数,之后得到的那个数就是最小公倍数

方法三:辗转相除法

  1. 判断两个数的最大值,让最大值除去最小值然后得到它的余数1
  2. 用两个数中的最小值除以余数1,得到余数2
  3. 让余数1除以余数2得到余数3
  4. 重复上述步骤,当哪一个余数为零,那么它的除数就是最大公因数

代码自测(输入任意两个整数,输出他们的最大公约数和最小公倍数 )-2021-7-16相关推荐

  1. C语言设计函数求最大公约数,C语言程序设计课程设计--编写函数求取两个整数m,n的最大公约数和最小公倍数.doc_在线文库www.lddoc.cn...

    C语言程序设计课程设计--编写函数,求取两个整数m,n的最大公约数和最小公倍数.doc C语言程序设计课程设计C语言程序设计课程设计评语考勤(10)纪律(10)过程(40)设计报告(30)答辩(10) ...

  2. python求解指定输入的两个整数的二进制表达不同位数之和

    题目: 输入两个整数,求解他们的二进制表示中不同的位数有多少 思路: 先转化为二进制表示之后,以较短的表达式为主,计算对应位置上面的不同位数和,最后的结果再加上二者二进制表示长度的差值即可 下面是具体 ...

  3. 设计求任意两个整数和的web程序,用户通过提交页面(input.jsp)输入两个整数,并提交给一个(sum.jsp)程序

    张继军 董卫 <java web 应用开发技术与实案列教程>课后习题之第三章第4题 题解 题目内容 源代码 input.jsp sum.jsp positive.jsp negetive. ...

  4. c语言,在主函数中输入一个整数,求该整数各位数字的乘积,[求助]求由键盘输入的任意两个整数的积...

    [求助]求由键盘输入的任意两个整数的积 [问题已解决] 我是才接触C的新手,一共才上了4节课,老师就出题了,请高手帮忙看看(如果愿意帮忙改的,请尽量不要改变原来的变量):--------------- ...

  5. ACMNO.7 输入两个正整数m和n,求其最大公约数和最小公倍数。 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35

    题目描述 输入两个正整数m和n,求其最大公约数和最小公倍数. 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35 来源/分类 C语言 示例照片: 设计思路: 本题最难的 ...

  6. Java黑皮书课后题第3章:3.2(游戏:将三个数相加)程序清单3-1中的程序产生2个整数并提示用户输入这两个整数的和。修改该程序使之能产生三个个位数整数,提示用户输入这三个整数的和

    3.2(游戏:将三个数相加)程序清单3-1中的程序产生2个整数并提示用户输入这两个整数的和.修改该程序使之能产生3个个位数整数,提示用户输入这3个整数的和 题目 题目概述 程序清单3-1(非本题代码) ...

  7. 输入任意两个两位的自然数,输出它们完整的乘法竖式。

    题目: 输入任意两个两位的自然数,输出它们完整的乘法竖式. 代码: 1 program shen17; 2 var 3 a,b,c,d:integer; 4 BEGIN 5 readln(a,b); ...

  8. c语言找最大数字,C语言: 键盘输入任意10个整数,找出最大数及最大数的序号。...

    例1:键盘输入任意10个整数,找出最大数. 解析如下: 这个题目可以用我们前面介绍的打擂台的方法来做:先输入一个数作为擂主,然后,从第二个数开始,每输入一个数都跟擂主比较,如果大于擂主,则记住该数,使 ...

  9. 求任意两个整数的最大公因数

    按照欧几里得算法,编写程序,求用户从键盘输入的任意两个整数的最大公因数. 程序的运行结果如下所示: 输入: 120 80 输出: 40 分析:根据欧几里得算法 gcd(a,b)=gcd(b,a%b)证 ...

最新文章

  1. 手机项目,html抬头,HTMLCSS学习笔记(二十)-- 移动端项目准备工作
  2. php多文件压缩的功能函数
  3. Hdu 4415 Assassin's Creed 【贪心】.cpp
  4. 使用 C# 编程对RTF文档的支持
  5. RocketMQ源码解析-PullConsumer取消息(2)
  6. 快速编辑里指定默认值
  7. springmvc获取原生servletAPI
  8. ext2文件系统源代码之ext2.h
  9. 删库跑路大全 删库跑路
  10. IOS开发之——音乐播放器-概述(01)
  11. HTML结构及常用的标签
  12. 网页实现excel下载
  13. tomcat轻量级服务器
  14. 论 Erda 的安全之道
  15. siri打电话功能测试用例编写
  16. shineblink电位器模拟旋钮
  17. 搜索引擎蜘蛛算法与蜘蛛程序构架
  18. node sass 报错解决方法 Module build failed (from ./node_modules/sass-loader/dist/cjs.js)
  19. 数学:SVM(2)点到直线距离
  20. 程序员必备的600个英语词汇(4)

热门文章

  1. FlexE( Flex Ethernet灵活以太网)
  2. USB-Armory + Kali 试水
  3. 图神经网络GNN详解
  4. 【毕业设计系列】009:调频通信系统(相干解调非相干解调)仿真界面实现
  5. 回转半径的计算公式_截面最小回转半径怎么算,比如300*400的柱子
  6. 如何忽悠iPhone粉丝换安卓?(总共分6步)
  7. 软件测试之Web测试
  8. 我拿到了梦寐以求的字节跳动和腾讯双offer!知乎上转疯了!
  9. 数据库系统概念(第四版)
  10. ANPC仿真模型,有源中点钳位三电平逆变器,基于MATLAB Simulink建模仿真