Sto cercando di capire la complessità di queste due funzioni che ho scritto ma non ho potuto capire.def
In primo luogo, ho pensato che fosse supposto essere O(N)
. Ma non è chiaro quante volte il ciclo si avvia perché non ho idea di quanti numeri primi possano essere trovati.
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
Nella seconda funzione, si suppone che sia O(N/2)
.
def self.is_prime n
(2..n/2).none?{|i| n % i == 0}
end