zoukankan      html  css  js  c++  java
  • 输入两个正整数m和n,求其最大公约数和最小公倍数

    题目:输入两个正整数mn,求其最大公约数和最小公倍数。

    程序分析:利用辗除法。

    在循环中,只要除数不等于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 yejin
    11  * 
    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 }
  • 相关阅读:
    git常用指令 github版本回退 reset
    三门问题 概率论
    如何高效的学习高等数学
    数据库6 关系代数(relational algebra) 函数依赖(functional dependency)
    数据库5 索引 动态哈希(Dynamic Hashing)
    数据库4 3层结构(Three Level Architecture) DBA DML DDL DCL DQL
    梦想开始的地方
    java String字符串转对象实体类
    java 生成图片验证码
    java 对象之间相同属性进行赋值
  • 原文地址:https://www.cnblogs.com/justdoitba/p/7142687.html
Copyright © 2011-2022 走看看