Kotlin проблема с пониманием куска кода - PullRequest
0 голосов
/ 19 мая 2019

Я только начал изучать программирование, и у меня возникли проблемы с пониманием фрагмента кода из учебника. Кто-нибудь может объяснить, что делает код Kotlin ниже?

Спасибо

fun f(i:Int, list:MutableList<Int>) : Boolean {
    for (number in list) {
        if (i % number == 0) {
            return false
        }
    }
    return true
}

fun main(args:Array<String>) {
    val result = mutableListOf<Int>()
    for (number in 2..100) {
        if (f(number, result)) {
            result.append(number)
        }   

       print(result.joinToString())
}

Ответы [ 2 ]

2 голосов
/ 20 мая 2019

Основной метод создает новый список целых чисел. В цикле от 2 до 200 он вызывает функцию f с текущим номером цикла (номером) и созданным списком.

Функция проверяет, можно ли разделить передаваемое число на любое число в списке. В случае, если он может быть разделен, возвращается false, иначе true.

Если число не может быть разделено, то число сохраняется в списке.

Так что это простой алгоритм для поиска простых чисел. В списке хранятся все найденные на данный момент простые числа. И функция проверяет, можно ли разделить число на любое из простых чисел.

1 голос
/ 20 мая 2019

f(...) проверяет, делю ли я на любое число в списке - если да, возвращает false.

main(..) проходит по всем числам из 2..100 и добавляет числа, которые не делятся налюбое число, ранее добавленное в список.

По сути, оно будет печатать все простые числа в диапазоне от 2..100

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