Я совершенно новичок в этом и пытаюсь научить себя Руби.Мне задали вопрос, чтобы узнать, смогу ли я собрать воедино то, что нужно сделать, и доказать навыки решения проблем с помощью исследований и самоотдачи, так что, имейте в виду, я очень мало знаю о Ruby, я изучаю его целый день.
Мне нужно сначала определить, является ли целое число простым числом (насколько я знаю, не используя требуемый каталог 'prime'), а затем, если результат равен true, мой вывод должен быть равен 1.Если оно ложно, мой вывод должен быть наименьшим делителем больше единицы.
Собирая воедино вещи, которые я нашел здесь и на других сайтах в Интернете, я собрал то, что, как я надеялся, будет работать.Это не.
def isPrime(n)
( 2..Math.sqrt(n)).each { |i|
if n % i == 0 && i < n
else
n.reduce { |smallest, current| break if n <= 2 }
puts n
end
}
1
Я понятия не имею, почему это не работает.Я мало знаю о синтаксисе Ruby, и я достаточно уверен, что именно здесь я и напутал.
Поиск простого числа РАБОТАЕТ;остальное (нахождение наименьшего делителя) этого не делает.И я уверен, что моя замена истины на 1 ужасно искажает это.Любая помощь или понимание будет принята с благодарностью.У меня нулевой фон в кодировании (если не считать мою маму, работающую в COBOL в 80-х годах), поэтому, во что бы то ни стало, объясните это, как вы, простому человеку, потому что Я ТАК нов.