The exercise I'm working on asks "Write a method, coprime?(num_1, num_2), that accepts two numbers as args. The method should return true if the only common divisor between the two numbers is 1."
I've written a method to complete the task, first by finding all the factors then sorting them and looking for duplicates. But I'm looking for suggestions on areas I should consider to optimize it.
The code works, but it is just not clean.
def factors(num)
 return (1..num).select { |n| num % n == 0}
end
def coprime?(num_1, num_2)
  num_1_factors = factors(num_1)
  num_2_factors = factors(num_2)
  all_factors = num_1_factors + num_2_factors
  new = all_factors.sort
  dups = 0
  new.each_index do |i|
    dups += 1 if new[i] == new[i+1]
  end
  if dups > 1
    false
  else
    true
  end    
end
p coprime?(25, 12)    # => true
p coprime?(7, 11)     # => true
p coprime?(30, 9)     # => false
p coprime?(6, 24)     # => false
 
     
     
    