java求两个数的最大公约数和最小公倍数
2017-10-17 22:54
232 查看
解题思路:
1.求最大公约数用辗转相除法。将较大的那个数对较小的那个数取余(如果a>=b,那就a%b),取余得出的结果为下次运算的除数,上面较小的那个数将作为被除数
直到运算到较小为0时,返回较大的数,这个数就是最大公约数。
2.最小公倍数就是 原来的两个正整数的积除以最大公约数
具体代码如下:
欧几里德算法介绍:
https://baike.baidu.com/item/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%B7%E7%AE%97%E6%B3%95?fr=aladdin
1.求最大公约数用辗转相除法。将较大的那个数对较小的那个数取余(如果a>=b,那就a%b),取余得出的结果为下次运算的除数,上面较小的那个数将作为被除数
直到运算到较小为0时,返回较大的数,这个数就是最大公约数。
2.最小公倍数就是 原来的两个正整数的积除以最大公约数
具体代码如下:
/*方法一:*/ package Main; import java.util.Scanner; public class Solution { public static void main(String[] args) { System.out.println("请输入两个整数:"); Scanner input1 =new Scanner(System.in); int a = input1.nextInt(); int b =input1.nextInt(); int u= a*b; // 用u来保存 a*b 的值 while(b>0) { if(a>=b&&a%b!=0){ int t = b; b = a%b; // 利用了递归算法 a = t; }else if(a%b==0){ break; // a刚好是b的倍数 }else{ int s = a; // 当 a < b 时 ,a b的值交换 a = b; b = s; } } System.out.println("两个数的最大公约数为:"+b); System.out.println("两个数的最小公倍数为:"+u/b); } } /*方法二,欧几里德算法(辗转相除法)*/ package Main; import java.util.Scanner; public class Solution { int divisor(int m,int n)//递归方法 { if (m % n == 0) { return n; } else { return divisor(n,m % n); } } public static void main(String[] args) { System.out.println("请输入两个整数:"); Scanner input1 =new Scanner(System.in); int a = input1.nextInt(); int b =input1.nextInt(); int u= a*b; // 用u来保存 a*b 的值 Solution s = new Solution(); int result; result = s.divisor(a, b); System.out.println("两个数的最大公约数为:"+result); System.out.println("两个数的最小公倍数为:"+u/result); } }
欧几里德算法介绍:
https://baike.baidu.com/item/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%B7%E7%AE%97%E6%B3%95?fr=aladdin
相关文章推荐
- 黑马程序员——java基础——练习题:键盘输入两个正整数求两个数的最大公约数和最小公倍数
- java中请给出例子程序:找出两个数的最大公约数和最小公倍数
- java求输入两个数的最大公约数和最小公倍数
- Java算法之求两个数的最大公约数与最小公倍数
- 求两个数的最大公约数和最小公倍数Java(cvte考题)
- java基础算法之求两个数的最大公约数和最小公倍数
- [Java]练习题006: 求两个数的最大公约数和最小公倍数
- Java学习笔记10:求两个数的最小公倍数和最大公约数
- java中求两个数的最小公倍数,最大公约数的简便方法
- [Java]练习题006: 求两个数的最大公约数和最小公倍数
- [Java]练习题006: 求两个数的最大公约数和最小公倍数
- java求两个数的最大公约数和最小公倍数
- java 求两个整数的最大公约数和最小公倍数
- java 求最大公约数和最小公倍数
- 一些简单的java编程题(9) ————求最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- C++中用辗转相除法求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数的一种超级简单的方法