50道JAVA基础编程练习题(1)

时间:2023-02-22 14:48:59
  1. 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

    // 求最大公约数和最小公倍数
    // 程序分析:利用辗除法。
    private static void max_min(int m, int n) {
    int temp = 1;
    int yshu = 1;
    int bshu = m * n;
    if (n < m) {
    temp = n;
    n = m;
    m = temp;
    }
    while (m != 0) {
    temp = n % m;
    n = m;
    m = temp;
    }
    yshu = n;
    bshu /= n;
    System.out.println("最大公约数为" + yshu);
    System.out.println("最小公倍数为" + bshu);
    }
  2. 题目:一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如6=1+2+3.编程找出1000以内的所有完数。

    // 求完数
    private static void compNumber(int n) {
    System.out.println(n + "以内的完数:");
    int count = 0;
    for (int i = 1; i <= n; i++) {
    int sum = 0;
    for (int j = 1; j <= i / 2; j++) {
    if ((i % j) == 0) {
    sum += j;
    }
    }
    if (sum == i) {
    System.out.print(i + " \n");
    count++;
    }
    }
    System.out.println(n + "以内共有完数 : " + count + "个");
    }