A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.lang.Math;
import java.util.Scanner;
class Test {
        public static void main(String[] args)  {
                Scanner sc = new Scanner(System.in);
                maxPact(sc);
                minTimes(sc);
        }
        //异常判断
        public static int exception(Scanner sc) {
                int a;
                try {
                        a = sc.nextInt();
                }
                catch (Exception ex) {
                        return -1;
                }
                return a;
        }
        //最大公约数
        public static void maxPact(Scanner sc) {
                int a = 0,b = 0,key = 0;
                System.out.println("请输入两个正整数:");
                a = exception(sc);
                if(a == -1) {
                        System.out.println("数据类型输入错误!");
                        return;
                }
                b = exception(sc);
                if(b == -1) {
                        System.out.println("数据类型输入错误!");
                        return;
                }
                for (int i = 1;i <= (a < b? a : b);i++) {
                        if(a % i == 0 && b % i == 0) {
                                key = i;

                        }else {
                                continue;
                        }
                }
                if (key != 0) {
                        System.out.println(a + "和" + b + "的最大公约数是: " + key);
                }else {
                        System.out.println(a + "和" + b + "没有公约数!");
                }
        }
        //最小公倍数
        public static void minTimes(Scanner sc) {
                int a = 0,b = 0,key = 0;
                System.out.println("请输入两个正整数:");
                a = exception(sc);
                if(a == -1) {
                        System.out.println("数据类型输入错误!");
                        return;
                }
                b = exception(sc);
                if(b == -1) {
                        System.out.println("数据类型输入错误!");
                        return;
                }
                for (int i = a * b; i >= (a > b? a : b);i-- ) {
                        if(i % a == 0 && i % b == 0) {
                                key = i;
                        }else {
                                continue;
                        }
                }
                if (key != 0) {
                        System.out.println(a + "和" + b + "的最小公倍数是:" + key);
                }else {
                        System.out.println(a + "和" + b + "没有最小公倍数!");
                }
        }
}

1 个回复

正序浏览
9999999999
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马