Нахождение совершенных чисел;структуры управления в Java - PullRequest
0 голосов
/ 18 октября 2019

Эй, ребята, я пытаюсь написать код для поиска первых 4 натуральных чисел, но я не могу понять, почему мой код не дает мне ответа. Я ничего не получаю в качестве вывода, и программа заканчивается, не давая мне вывод. Пожалуйста, скажи мне, что именно не так с моей логикой. Спасибо!

public static void main(String[] args){
        int sum = 0, check = 1, min = 1;
        while(min < 10000){
            while(check<min){
                if(min % check == 0){
                    sum = sum + check;
                }
                check++;
            }
            if(sum == min){
                System.out.println(sum);
            }
            min++;
        }
    }
}

1 Ответ

1 голос
/ 18 октября 2019

Вы имеете в виду найти первые четыре совершенных числа?

int i = 0; // or i = 1
int count = 0;
while (count < 4) {
    int k = 0;
    for (int j = 1; j < i; j++) {
        if (i % j == 0) {
            k += j;
        }
    }
    if (k == i) {
        count++;
        System.out.println(k);
    }
    i++;
}

Вывод

0
6
28
496

или если начать i = 1

6
28
496
8128
...