Я пытаюсь написать функцию, которая принимает Int и возвращает все простые числа вплоть до Int и включает Int.Получить список простых чисел для N
"список простых чисел для 8", например = List (3,5,7)
Это то, что я до сих пор:
def isPrime(i: Int): Boolean = {
if (i <= 1)
false
else if (i == 2)
true
else
!(2 to (i - 1)).exists(x => i % x == 0)
} //> isPrime: (i: Int)Boolean
def getListOfPrimesToN(n : Int) = {
}
для функции getListOfPrimesToN я планирую 1 создать список «l» размера n и заполнить его элементами от 0 до n. 2. вызвать функцию карты «l» и вызвать isPrime для каждого элемента в списке.
Как создать список элементов с 1 по N?
Любые альтернативные решения для возврата всех простых чисел вплоть до приветствия Int N и включая Int.
Просто '(от 1 до N).toList'? – rightfold
@ правыйføld да, это работает. спасибо –
'1 to N filter (_.isPrime)'. Также можно использовать метод List.range. Что касается альтернативных решений, попробуйте сито Эратосфена, которое является де-факто стандартным решением для поиска всех простых чисел до заданного значения и достаточно эффективным. –