【程序16】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:从小数开始向下求最大公约数,从大数向上求最小公倍数。。
2.程序源代码:
1 /*本文转自博客:www.cnblogs.com/java-100
2 【程序16】
3 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
4 程序分析:从小数开始向下求最大公约数,从大数向上求最小公倍数。
5 */
6
7 public class Java16 {
8
9 public static void main(String[] args) {
10 System.out.print("请输入m,n两个正整数,中间以空格隔开:");
11 Scanner scanner = new Scanner(System.in);
12 int m = scanner.nextInt();
13 int n = scanner.nextInt();
14 scanner.close();
15 int greatestCommonDivisor = 0, leastCommonMultiple = 0;
16 int min = m < n ? m : n;
17 int max = m > n ? m : n;
18 System.out.println("m=" + m + ",n=" + n);
19 for (int i = min; i >= 2; i--) {
20 if (m % i == 0 && n % i == 0) {
21 greatestCommonDivisor = i;
22 break;
23 }
24 }
25 System.out.println("最大公约数:" + greatestCommonDivisor);
26 for (int i = max; i <= m * n; i++) {
27 if (i % m == 0 && i % n == 0) {
28 leastCommonMultiple = i;
29 break;
30 }
31 }
32 System.out.println("最小公倍数:" + leastCommonMultiple);
33 }
34 }
来源:https://www.cnblogs.com/java-100/p/5277806.html