**每天一道JavaSE基础题(六、最大公约数和最小公倍数:输入两个正整数m和n,求其最大公约数和最小公倍数。 )**
【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- 程序分析: 利用辗除法
-
最大公约数=其中较小的那个数和两数的相除余数
-
最小公倍数 = (a * b)/最大公约数
程序代码:
package SE50T;
import java.util.Scanner;
/*
* 【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
* 程序分析: 利用辗除法
* 最大公约数=其中较小的那个数和两数的相除余数
* 最小公倍数 = (a * b)/最大公约数
*/
public class T6 {
public static void main(String[] args) {
System.out.print("请输入正整数 m 的值:");
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
System.out.print("请输入正整数 n 的值:");
int n = sc.nextInt();
int a = Gys(m,n);
int b = m*n/a;
System.out.println(m+"和"+n+"的最大公约数为:"+a+",最小公倍数为:"+b);
}
public static int Gys(int x,int y){
int t;
if(x<y){
t=x;
x=y;
y=t;
}
while (y!=0){
if(x==y){
return 1;
}else {
int k = x % y;
x=y;
y=k;
}
}
return x;
}
}
程序运行图: