• Problem06 求最大公约数及最小公倍数


    题目:输入两个正整数m和n,求其最大公约数(m,n)和最小公倍数[m,n]。

    程序分析:利用辗转相除法。

    利用辗除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数,

    再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。

    最后的除数就是这两个数的最大公约数。

    最小公倍数:两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(m,n)×[m,n]=m×n。

     1 import java.util.*;
     2 
     3 public class Problem06 {
     4     //题目:输入两个正整数m和n,求其最大公约数(m,n)和最小公倍数[m,n]。
     5     //利用辗除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数,
     6     //再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。
     7     //最后的除数就是这两个数的最大公约数。
     8     //最小公倍数:两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(m,n)×[m,n]=m×n
     9     public static void main(String args[]) {
    10         System.out.println("请输入两个正整数:");
    11         Scanner s = new Scanner(System.in);
    12         int m = s.nextInt();
    13         int n = s.nextInt();
    14         System.out.println(m+"和"+n+"的最大公约数是:"+zhanzhuan(m,n));
    15         System.out.println(m+"和"+n+"的最小公倍数是:"+gongbei(m,n));
    16         s.close();
    17     }
    18     
    19     //辗转相除法找出最大公约数
    20     public static int zhanzhuan(int m, int n) {
    21         //找出较大的数
    22         if(m<n) {
    23             int temp = m;
    24             m = n;
    25             n = temp;
    26         }
    27         while(true) {
    28             //
    29             int r = m % n;
    30             if(r==0) {
    31                 return n;
    32             }else {
    33                 m = n;
    34                 n = r;
    35             }
    36         }
    37     }
    38     
    39     //最小公倍数:两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(m,n)×[m,n]=m×n
    40     public static int gongbei(int m, int n) {
    41         return m*n / zhanzhuan(m,n);
    42     }
    43 }

    输入30,45,输出结果:

    1 请输入两个正整数:
    2 30
    3 45
    4 30和45的最大公约数是:15
    5 30和45的最小公倍数是:90
  • 相关阅读:
    糖果传递
    流水作业调度(贪心) Johnson算法
    [CQOI2015]任务查询系统
    [CQOI2009]叶子的染色
    P4906 小奔关闹钟
    P1131 [ZJOI2007]时态同步
    P1270 “访问”美术馆
    P1272 重建道路
    [HNOI/AHOI2018]道路
    P1776 宝物筛选_NOI导刊2010提高(02)
  • 原文地址:https://www.cnblogs.com/nemowang1996/p/10387896.html
Copyright © 2020-2023  润新知