Java 循环经典题 !!!

文章说明

本篇文章介绍如何使用【循环 】,仅是对自己学习的记录,并没有深入分析每个模块。感谢支持!

题一:

/题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
比如:12和20的最大公约数是4,最小公倍数是60
说明: break关键字的使用
/

 Scanner scanner = new Scanner(System.in);
        System.out.println("请输入两个正整数");
        int inPut = scanner.nextInt();
        int inPut1 = scanner.nextInt();


        //获取 最大 公约数.......
        // 第一步:获取两个数中的,最小值
        int min = (inPut < inPut1) ? inPut : inPut1;
        //System.out.println(min);
        //分析:你求最大公约数,可不能超过,其中数的最小值,然后要求最大的,所以  到 着 执行........
        for (int i = min; i >= 1; i--) {
            if (inPut % i == 0 && inPut1 % i == 0) {
                System.out.println("最大公约数:" + i);
                break;//一但执行到 break 就跳出循环!
            }
        }
        //获取最小公倍数:
        //第一步:获取两数的最大值
        int max = (inPut > inPut1) ? inPut : inPut1;
        //分析 :范围可以不超过 他们两的乘积。从 最大值,开始执行...
        for (int i = max; i <= inPut * inPut1; i++) {
            if (i % inPut == 0 && i % inPut1 == 0) {
                System.out.println("最小公倍数:" + i);
                break;
            }
        }

题二

    // 质数:除了1 和  本身 与其他数 ,除不清的数,就是质数!

       /* Scanner scanner = new Scanner(System.in);
        int inPut = scanner.nextInt();

        boolean z = true;
        for (int i = 2; i < inPut; i++) {

            if (inPut % i == 0) {
                z = false;
            }
        }

        if (z) {
            System.out.println(inPut + "质数!");
        } else {
            System.out.println(inPut + "不是质数!");
        }*/


        //获取 当前时间的毫秒数....
        long start = System.currentTimeMillis();

        for (int i = 2; i <= 100000; i++) {
            boolean z = true;
            // 优化二: Math.sqrt  根号 i   ,比较的范围就小了。
            for (int j = 2; j <= Math.sqrt(i); j++) {  // 相除的
                if (i % j == 0) {
                    z = false;
                    break; // 优化一:只对本身非质数的自然数是有效的,已经不是质数了,再去除就没意义咯
                }
            }
            if (z == true) {
                // System.out.println(i);
            }
        }
        long end = System.currentTimeMillis();

        System.out.println("所花费的时间为:" + (end - start));


        //        // 1 秒 等于 1000 毫秒
        //13342
        //1157
        //112

题三

一个数如果恰好等于它的因子之和,这个数就称为完数”.例如6=1+2+3.
编程找出1000以内的所有完数。(因子:除去这个数本身的其它约数)

        for (int i = 1; i <= 10000000; i++) {
            int sum = 0;
            for (int j = 1; j < i; j++) {
                if (i % j == 0) {
                    sum += j;
                }
            }
            if (i == sum) {
                System.out.println(i);
            }

        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值