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

 import java.util.*;
public class Prog6 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);// 接收控制台输入的信息
System.out.print("请输入第一个整数:");
int num1 = scan.nextInt(); // 取出控制台输入的信息
System.out.print("请输入第二个整数:");
int num2 = scan.nextInt(); // 取出控制台输入的信息
scan.close(); System.out.println("最大公约数是:"+maxCommonDivisor(num1, num2));// 调用maxCommonDivisor()方法
System.out.println("最小公倍数是:"+minCommonMultiple(num1, num2));// 调用minCommonMultiple()方法
} //求最小公倍数
public static int minCommonMultiple(int m,int n) {
return m*n/maxCommonDivisor(m,n);
} //求最大公约数
public static int maxCommonDivisor(int m,int n) {
//判断输入的两个数的大小,保证大的数始终放在第一个参数位置
if(m<n) {
int temp=m;
m=n;
n=temp;
} int i=n;//从大到小,第一次求出来的公约数就是最大公约数,如果不能同时整除两个数,则不是公约数
while((n%i!=0)||(m%i!=0))
{
i--;
}
return i;
}
}
/*运行结果
请输入第一个整数:6
请输入第二个整数:8
最大公约数是:2
最小公倍数是:24
*/

Java50道经典习题-程序6 求最大公约数及最小公倍数的更多相关文章

  1. Java50道经典习题-程序9 求完数

    题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. public class Prog9 { public stati ...

  2. Java50道经典习题-程序20 求前20项之和

    题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和.分析:请抓住分子与分母的变化规律.三个连续分数之间的规律是:上两个分子之和等于第三个分数的分子 ...

  3. Java50道经典习题-程序21 求阶乘

    题目:求1+2!+3!+...+20!的和分析:使用递归求解 0的阶乘和1的阶乘都为1 public class Prog21{ public static void main(String[] ar ...

  4. Java50道经典习题-程序23 求岁数

    题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第1个人大两岁.最后问第一个人,他说是10岁.请问 ...

  5. Java50道经典习题-程序27 求素数

    题目:求100之内的素数分析:素数即除了1和它本身以外不再有其他因数,最小的素数是2 判断一个数n是否是素数的方法:将n分别与2到(n+1)/2取余,若有一个值为0,则n就不为素数,反之为素数 pub ...

  6. Java50道经典习题-程序29 求矩阵对角线之和

    题目:求一个3*3矩阵对角线元素之和分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出. 例如:下面矩阵的对角线之和为24 1 4 6 2 5 3 9 7 8 public cla ...

  7. Java50道经典习题-程序38 求字符串长度

    题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度. import java.util.Scanner; public class Prog38 { public stat ...

  8. Java50道经典习题-程序43 求奇数个数

    题目:求0—7所能组成的奇数个数,奇数中不包含重复数字. public class Prog43 { public static void main(String[] args) { //0-7能组成 ...

  9. Java50道经典习题-程序42 求数字

    题目:809*??=800*??+9*??+1其中??代表两位数,若有这样得数,求??代表的两位数 public class Prog42{ public static void main(Strin ...

随机推荐

  1. [jOOQ中文]3. 数据库版本管理工具Flyway

    https://segmentfault.com/a/1190000010526452 在执行数据库迁移时,我们推荐使用jOOQ与Flyway - 数据库迁移轻松. 在本章中,我们将简单的来使用这两个 ...

  2. 【Directshow】IFilterGraph::AddFilter方法参数问题<转>

    看dx里dshow的例子和别人的程序,用IFilterGraph::AddFilter()这个API添加filter到Graph的时候,第二个参数是一个设备友好名称: 我看有的填的是通过IProper ...

  3. 4-30 HTML 细节摘录

     <b> 定义粗体文本. <big> 定义大号字. <em> 定义着重文字. <i> 定义斜体字. <small> 定义小号字. <s ...

  4. TCP/IP知识总结(TCP/IP协议族读书笔记一)

    一.简述TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/互联网互联协议,又名网络通信协议.是Internet最基 ...

  5. 使用Git将码云上的代码Clone至本地

    1. 安装Git https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git Git的网站上有详细的分各种系统的安 ...

  6. N 秒打开一个新窗口

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  7. 怎样在Windows与Centos下的Linux间共享文件,如果mnt文件夹不显示,可能是mnt缺少共享支持

    mnt中的hgfs文件夹就是Linux系统中挂载共享文件的默认文件夹.有的人按步骤共享之后mnt中没有出现共享的文件,可能是因为你的mnt缺少共享支持. 此时可以在Terminal中输入:sudo m ...

  8. bug解决思路

    1.定位 2.往前看3段:如果有If判断,就重点看为什么会进入到该判断里面

  9. c++ template 判断是否为类类型

    /* The following code example is taken from the book * "C++ Templates - The Complete Guide" ...

  10. openssl详解

    openssl详解 摘自:https://blog.csdn.net/liguangxianbin/article/details/79665100 目录 目录 第一章 前言 第二章 证书 第三章 加 ...