循环结构 practice

发布于:2022-07-24 ⋅ 阅读:(271) ⋅ 点赞:(0)

 1、输出100以内的所有素数,每行显示5个;并求和

public static void main(String[] args) {
        //输出数字个数为0
        int count = 0;
        //输出数字的和
        int sum = 0;
        //1不是素数,从2开始.i循环一个,j循环一遍
        for (int i = 2; i <= 100; i++) {
            //做个标记,便于输出;当i迭代之后,重新定义flag的值
            boolean flag = true;
            for (int j = 2; j < i; j++) {
                //当i%j==0时,说明该数不是素数,素数是只能被1和它本身整除的数
                if (i % j == 0) {
                    //此时改变flag的值为false
                    flag = false;
                    //结束循环,执行for循环后面的代码
                    break;
                }
            }
            //根据flag的值来判断,若为true则执行{}里的代码,若是false,则执行if结构后的代码
            if (flag) {
                System.out.print(i + "\t");
                count++;
                if (count % 5 == 0) {
                    System.out.println();
                }
            }
            sum+=i;
        }
        System.out.println("一百以内的素数和="+sum);
        System.out.println("程序执行完毕");
    }

}
 

2、求两个整数的最大公约数和最小公倍数

public static void main(String[] args) {
        int x, y, max, min, a, remainder, c;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入俩个整数:");
        x = sc.nextInt();
        y = sc.nextInt();

        if (x > y) { // 将输入的两个值,大的赋给max,小的赋给min.
            max = x;
            min = y;
        } else {
            max = y;
            min = x;
        }

        a = max * min;
        remainder = max % min; // 求最大公约数算法:
        while (remainder != 0) { // 1.max 对 min
                                    // 进行求余,余数用remainder表示(reminder=max%min)
            max = min; // 2.如果remainder等于0则min就是 max和min的最大公约数
            min = remainder; // 3.如果reminder不等于0,则将min赋给max,将reminder赋给min。
            remainder = max % min; // 4.进行1.2.两步最后min即为最大公约数
        }
        c = a / min; // 求最小公倍数的的算法:
        System.out.println("最大公约数是" + min); // 最小公倍数 = (max * min)/最大公约数。
        System.out.println("最小公倍数是" + c);

    }
 

本文含有隐藏内容,请 开通VIP 后查看