Делители числа в Java — программа печати всех множителей

Программа выводит все делители заданного числа. Делитель — это число, на которое исходное число делится без остатка.

Пример 1: делители положительного числа

public class Main {

  public static void main(String[] args) {

    // положительное число
    int number = 60;

    System.out.print("Factors of " + number + " are: ");

    // цикл от 1 до 60
    for (int i = 1; i <= number; ++i) {

      // если number делится на i,
      // значит i — делитель
      if (number % i == 0) {
        System.out.print(i + " ");
      }
    }
  }
}

Вывод:

Factors of 60 are: 1 2 3 4 5 6 10 12 15 20 30 60

В программе выше число, делители которого нужно найти, хранится в переменной number (60).

Цикл for выполняется, пока условие i <= number истинно. На каждой итерации проверяется, делится ли number на i без остатка (условие, чтобы i был делителем), и значение i увеличивается на 1.

Пример 2: делители отрицательного числа

class Main {

  public static void main(String[] args) {

    // отрицательное число
    int number = -60;
    System.out.print("Factors of " + number + " are: ");

    // цикл от -60 до 60
    for(int i = number; i <= Math.abs(number); ++i) {

      // пропускаем итерацию при i = 0
      if(i == 0) {
        continue;
      }
      else {
        if (number % i == 0) {
          System.out.print(i + " ");
        }
      }
    }
  }
}

Вывод:

Factors of -60 are: -60 -30 -20 -15 -12 -10 -6 -5 -4 -3 -2 -1 1 2 3 4 5 6 10 12 15 20 30 60

В этом примере мы вычислили все делители отрицательного числа. Цикл for идёт от -60 до 60.

При i = 0 итерация пропускается. Иначе возникло бы исключение (деление на ноль).

Примечание

Метод Math.abs() возвращает абсолютное значение числа.