как правильно написать "если n / x является целым числом, ставит x."
Обычно вы используете операцию по модулю ( %
в Ruby) и проверьте, вернется ли он 0
:
6 % 1 #=> 0
6 % 2 #=> 0
6 % 3 #=> 0
6 % 4 #=> 2
6 % 5 #=> 1
Ваш псевдокод преобразуется в Ruby:
n = 6
x = 1
while n > x
if n % x == 0
puts x
end
x = x + 1
end
или более идиоматических c и немного оптимизировано: (только до n/2
)
n = 6
1.upto(n/2).select { |i| n % i == 0 }
#=> [1, 2, 3]
Обратите внимание, что это возвращает массив. Поставьте puts
перед ним, чтобы напечатать его элементы.