1 /*6 【程序 6 求最大公约数及最小公倍数】 2 题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 3 程序分析:利用辗除法。 4 */ 5 6 /*分析 7 * ============================= 8 * 辗转相除法求【最大公约数】: 9 * 如我们计算10和25的最大公约数。用辗转相除法是这么计算的: 10 * 25÷10=2······5 11 * 10÷5=2······0 12 * 那么25和10的最大公约数就是5。 13 * ============================== 14 * 转换过来就是,求m和n的最大公约数,m%n==a,n%a==0,则m和n的最大公约数是a 15 * 16 * 【最小公倍数】=m*n/a(即:两个数相乘再除以其最大公约数) 17 * 18 * 综上,此题需要先利用辗转相除法求出最大公约数,再利用性质求出最小公倍数 19 * 20 * */ 21 22 package homework; 23 24 import java.util.Scanner; 25 26 public class _06 { 27 28 public static void main(String[] args) { 29 System.out.println("请输入两个正整数m,n:"); 30 //从键盘获得m,n两个整数 31 Scanner sc=new Scanner(System.in); 32 int m=sc.nextInt(); 33 int n=sc.nextInt(); 34 // System.out.println(m+" "+n); 35 int x=m,y=n; 36 //利用for循环来控制计算的步骤 37 for (int a=x; a>0; ) { 38 a=x%y; 39 x=y; 40 y=a; 41 } 42 System.out.println(m+","+n+"的最大公约数为:"+x+"\n"+m+","+n+"的最小公倍数为:"+m*n/x); 43 44 } 45 46 }
原文地址:https://www.cnblogs.com/scwyqin/p/12294200.html
时间: 2024-10-25 17:23:14