根据提示输入两个正整数 m 和 n,求其最大公约数和最小公倍数 并进行控制台输出。
原理分析
在循环中,只要除数不等于 0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为 0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。
结果演示
代码演示
package com.one;import java.util.Scanner;public class Dyxn {public static Scanner input = new Scanner(System.in);public static void main(String[] args) {System.out.println("请输入两个数来求最大公约数和最小公倍数:");System.out.println("请输入第一个数:");int a = input.nextInt();System.out.println("请输入第二个数");int b = input.nextInt();Deff cd = new Deff();int x = cd.deff(a,b); //调用函数找到最大公约数int y=a*b/x; //两个数的积除以最大公约数就是最小公倍数System.out.println("最大公约数:"+x);System.out.println("最小公倍数:"+y);}}
class Deff{public int deff(int a, int b){if(a<b){a=a^b;b=a^b;a=a^b;}while(b!=0){if(a==b)return a;else{int k=a%b;a=b;b=k;}}return a;}
}
深入Java,逻辑练习,了解更多关注我哟!!!