Я новичок в Ruby. У меня есть некоторый опыт работы с Python, но недавно, когда я вернулся к программированию, я решил изучать Ruby. Я работаю над программой, которая должна найти основные факторы числа, поэтому я создал метод, используя пробное деление. Затем, когда я пытаюсь вызвать метод, я получаю ошибку trial_division': undefined method `*' for nil:NilClass (NoMethodError)
.
Я попытался использовать разрывы для циклов while вместо end и получил те же результаты. Я не знаю, что в ruby приводит к тому, что этот метод не распознается.
def trial_division(n)
a = []
while n % 2 == 0
a.push(2)
n /= 2
f = 3
end
while f * f < n
if n % f == 0
a.push(f)
n /= f
else
f += 2
end
end
if n != 1
a.push(n)
end
puts a
end
Я бы хотел, чтобы программа находила простые множители числа и отображала массив.