zoukankan      html  css  js  c++  java
  • Java50道经典习题-程序6 求最大公约数及最小公倍数

    题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
    分析:用辗转相除法求最大公约数
        两个数的最大公约数:设两个数分别为n和m,(n>=m);用定义一个变量i,使用for循环,将i的取值从m一直到1,用i分别去取模于m和n,当两个数被取模的结果都是0时,返回此时变量i的值,此时i的值即为最大公约数
        两个数的最小公倍数=两个数之积/最大公约数

     1 import java.util.*;
     2 public class Prog6 {
     3     public static void main(String[] args) {
     4         Scanner scan = new Scanner(System.in);// 接收控制台输入的信息
     5         System.out.print("请输入第一个整数:");
     6         int num1 = scan.nextInt(); // 取出控制台输入的信息
     7         System.out.print("请输入第二个整数:");
     8         int num2 = scan.nextInt(); // 取出控制台输入的信息
     9         scan.close();
    10  
    11         System.out.println("最大公约数是:"+maxCommonDivisor(num1, num2));// 调用maxCommonDivisor()方法
    12         System.out.println("最小公倍数是:"+minCommonMultiple(num1, num2));// 调用minCommonMultiple()方法
    13     }    
    14     
    15     //求最小公倍数
    16     public static int minCommonMultiple(int m,int n) {
    17         return m*n/maxCommonDivisor(m,n);
    18     }
    19     
    20     //求最大公约数
    21     public static int maxCommonDivisor(int m,int n) {
    22         //判断输入的两个数的大小,保证大的数始终放在第一个参数位置
    23         if(m<n) {
    24             int temp=m;
    25             m=n;
    26             n=temp;
    27         }
    28         
    29         int i=n;//从大到小,第一次求出来的公约数就是最大公约数,如果不能同时整除两个数,则不是公约数
    30         while((n%i!=0)||(m%i!=0))
    31         {
    32             i--;
    33         }
    34         return i;
    35     }
    36 }
    37 /*运行结果
    38 请输入第一个整数:6
    39 请输入第二个整数:8
    40 最大公约数是:2
    41 最小公倍数是:24
    42 */
  • 相关阅读:
    WDF CSS 书写规范
    瞬间之美web界面设计如何让用户心动 读后感(一)
    ubuntu install node0.8.9 to the current user
    js单元测试_jsTestDriver
    window.print
    Java内省
    jQuery源代码学习jQuery对象扩展
    jdk集合结构
    【转载】程序员(1)
    【装载】JAVA虚拟机的内存模型
  • 原文地址:https://www.cnblogs.com/parkour1026/p/10796918.html
Copyright © 2011-2022 走看看