美文网首页基础练习题
6 最大公约数和最小公倍数

6 最大公约数和最小公倍数

作者: 北极的大企鹅 | 来源:发表于2023-09-23 21:14 被阅读0次
    • 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
    • 代码分析:在循环中,只要除数不等于0,用较大数除以较小的数,
    • 将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,
    • 如此循环直到较小的数的值为0,返回较大的数,
      *此数即为最大公约数,最小公倍数为两数之积除以最大公约数。
    
          public class _006Deff {
     
          public static void main(String[] args) throws Exception {
              inout();
          }
      
          public static void inout() {
              Scanner scanner = new Scanner(System.in);
              while (true) {
                 System.out.println("求最大公约数和最小公倍数 :");
                 System.out.println("请输入一个数:");
                 int a = scanner.nextInt();
                 System.out.println("请输入另一个数:");
                 int b = scanner.nextInt();
                 count(a, b);
     
             }
         }
    
         private static void count(int x, int y) {
             _006Deff deff = new _006Deff();
             try {
                 int m = deff.equals(x, y);
                 int n = x * y / m;
                 System.out.println("最大公约数是:" + m);
                 System.out.println("最小公倍数是:" + n);
    
             } catch (Exception e) {
                 throw new ArithmeticException("分母不能为零");
             }
         }
     
         public int equals(int x, int y) {
             int k;
             if (x < y) {
                 k = x;
                 x = y;
                 y = k;
             }
     
             while (y != 0) {
                 if (y == x) {
                     return x;
                 } else {
                     int t = x % y;
                     x = y;
                     y = t;
                 }
             }
             return x;
         }
     }
                
    

    相关文章

      网友评论

        本文标题:6 最大公约数和最小公倍数

        本文链接:https://www.haomeiwen.com/subject/ysuyvdtx.html