Напишите статический метод printNumbers
, который принимает целое число max в качестве аргумента и печатает все совершенные числа, которые меньше или равны max.
Сначала я продолжалполучить неправильный ответ, потому что внутренний цикл был установлен на j i % j != 0, даже если диапазон j будет больше?
for (int i = 1; i <= max; i++) {
int sum = 0;
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
System.out.print(sum + " ");
}
}
Если я изменил внутренний цикл j < max
, то printNumbers(6)
дает и 1, и 6, но printNumbers(500)
дает только 1 и никакого другого числа.