coding for food

[Ruby] exercise _ Pick Primes

silveryen 2022. 8. 6. 23:34

Write a method pick_primes that takes in an array of numbers and returns a new array containing only the prime numbers.

def pick_primes(numbers)

end

print pick_primes([2, 3, 4, 5, 6]) #=> [2, 3, 5]
puts
print pick_primes([101, 20, 103, 2017]) #=> [101, 103, 2017]
puts
# my code

def pick_primes(numbers)
  arr = []
  
  numbers.each do |num|
    if is_prime(num)
      arr << num
    end
  end
  
  return arr

end

def is_prime(num)
  if num < 2
    return false
  end
  
  (2...num).each do |factor|
  	if num % factor == 0
      return false
    end
  end
  return true
end


print pick_primes([2, 3, 4, 5, 6]) #=> [2, 3, 5]
puts
print pick_primes([101, 20, 103, 2017]) #=> [101, 103, 2017]
puts
#solution

def pick_primes(numbers)
  return numbers.select { |num| prime?(num)} # block return true, that's number you're gonna take. if the block return false, that's number that you don't take into your new array.  
                                             # Just calling method(prime?) and it's gonna give me a boolean.   
end

def prime?(num)
  if num < 2 # because any number less than two is not a prime. 
    return false
  end

  (2...num).each do |factor|
    if num % factor == 0
      return false
    end
  end

  return true
end

print pick_primes([2, 3, 4, 5, 6]) #=> [2, 3, 5]
puts
print pick_primes([101, 20, 103, 2017]) #=> [101, 103, 2017]
puts