import java.util.InputMismatchException;
import java.util.Scanner;
public class Demo {
/**
* 球最大公约数
*
* @param a
* @param b
* @return
*/
public static int gongyueshu(int a, int b) {
if (a <= 0 && b <= 0) {
System.out.println("输入的数有小于等于0的,不考虑公约数 用返回值——1来表示");
return -1;
} else {
int r = a > b ? b : a;
int y = 0;
for (int i = r; r >= 1; i--) {
if (a % i == 0 && b % i == 0) {
y = i;
break;
}
}
return y;
}
}
/**
* 求最小公倍数
* @param a
* @param b
* @return
*/
public static int beishu(int a, int b) {
if (a <= 0 && b <= 0) {
System.out.println("输入的数有小于等于0的,不考虑公倍数用返回值——1来表示");
return -1;
} else {
int r = a > b ? a : b;
int y=-1;
for (int i = r; i <= a * b; i++) {
if(i%a==0 && i%b==0){
y=i;
break;
}
}
return y;
}
}
public static void main(String[] agrs) {
Scanner in = new Scanner(System.in);
System.out.println("请输入两个整数:");
try{
int a=in.nextInt();
int b=in.nextInt();
int yue=gongyueshu(a, b);
int bei=beishu(a, b);
if(yue!=-1 && bei!=-1){
System.out.println(a+"和"+b+"的最大公约数"+yue);
System.out.println(a+"和"+b+"的最小公倍数"+bei);
}else{
System.out.println("输入的整数有小于等于零的!");
}
}catch(InputMismatchException e ){
System.out.println("输入的不是整数");
}catch(Exception e){
e.printStackTrace();
}
}
}
结果;
请输入两个整数:
15
20
15和20的最大公约数5
15和20的最小公倍数60
希望对你有帮助!
|