题⽬:输⼊两个正整数m和n,求其最⼤公约数和最⼩公倍数。程序分析:利⽤辗除法。
在循环中,只要除数不等于0,⽤较⼤数除以较⼩的数,将⼩的⼀个数作为下⼀轮循环的⼤数,取得的余数作为下⼀轮循环的较⼩的数,如此循环直到较⼩的数的值为0,返回较⼤的数,此数即为最⼩公约数,最⼩公倍数为两数之积除以最⼩公倍数。
1 package com.li.FiftyAlgorthm; 2
3 import java.util.Scanner; 4 5 /**b
6 * 题⽬:输⼊两个正整数m和n,求其最⼤公约数和最⼩公倍数。 程序分析:利⽤辗除法。
7 * 在循环中,只要除数不等于0,⽤较⼤数除以较⼩的数,将⼩的⼀个数作为下⼀轮循环的⼤数,取得的余数作为下⼀轮循环的较⼩的数,如此循环直到较⼩的数的值为0,返回 8 * 较⼤的数,此数即为最⼩公约数,最⼩公倍数为两数之积除以最⼩公倍数。 9 *
10 * @author yejin11 * 12 */
13 public class CommonDiviser {
14 public static void main(String[] args) {15 int a, b;
16 Scanner s1 = new Scanner(System.in);17 Scanner s2 = new Scanner(System.in);18 a = s1.nextInt();19 b = s2.nextInt();
20 CommonDiviser cd = new CommonDiviser();21 int m = cd.division(a, b);22 int n = a * b / m;
23 System.out.println(\"最⼤公约数: \" + m);24 System.out.println(\"最⼩公倍数: \" + n);25 }26
27 public int division(int x, int y) {28 int t;
29 if (x < y) {30 t = x;31 x = y;32 y = t;33 }34
35 while (y != 0) {36 if (x == y)37 return 1;38 else {
39 int k = x % y;40 x = y;41 y = k;42 }43 }
44 return x;45 }46 }
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务