цикл Java getLargePrime - PullRequest
       2

цикл Java getLargePrime

0 голосов
/ 24 апреля 2019

приведенный ниже код, если число было 90, я не понимаю, почему "i" не было бы 90 или 10 или 3, но остановилось на 5.

Заранее спасибо за помощь.

public class LargestPrime {

    public static int getLargestPrime(int number) {
        if (number <= 1) 
            return -1;
        for (int i = number ; i > 1; i--) {
            if (number % i == 0) {
                number = i;
                System.out.println(" i= " + i + "  number= " + number);
            }
        }
        return number;
    }
}

1 Ответ

0 голосов
/ 24 апреля 2019

Это происходит потому, что в этот момент i= 45 number= 45 все в порядке, и мы уменьшаем i до 15, затем 45% 15 и снова работаем нормально number % i == 0 и число становится 15, но после этого ваше i = 14, 13, 12 ... это не не работает, потому что 15 % 14, 13, 12...! = 0. Только когда i становится 5, оно снова работает, потому что 15 (число) % 5 (i) == 0. После этого программа прекращает выдавать number s и i, потому что число становится 5, а я переходит от 4 к 1. Итак, 5% 4, 3, 2, 1! = 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...