Я пытаюсь выяснить сложности этих двух функций, которые я написал, но не смог понять .def
Сначала я подумал, что это должно быть O(N)
. Но не ясно, сколько раз цикл выполняется, потому что я не знаю, сколько простых чисел можно найти.
def self.find_primes(n)
primes = []
total = 0
i = 2
while total < n do
if is_prime i
primes.push i
total += 1
end
i += 1
end
primes
end
Во второй функции она должна быть O(N/2)
.
def self.is_prime n
(2..n/2).none?{|i| n % i == 0}
end