Я пытаюсь написать метод, который принимает число и проверяет, имеет ли его простое число. После выполнения некоторых исследований быстрый способ проверки состоит в том, чтобы разделить число на каждое число между 2 и sqrt (число, которое мы проверяем). Я хочу, чтобы мой метод возвращал true, если это простое число и false, если это не так.Проверка простого числа в ruby
Поэтому я попытался написать код, который сделал логический смысл для меня, но я получаю сообщение об ошибке. Вот что я написал:
def PrimeTime(num)
counter = 2
while counter <= Math.sqrt(num).ceil
(counter == Math.sqrt(num).ceil) ? "false"
(num % counter == 0) ? "true" : counter += 1
end
end
Это дает мне
(eval):429: (eval):429: compile error (SyntaxError)
(eval):422: syntax error, unexpected '\n'
переписан код
def prime?(num)
(2..Math.sqrt(num).ceil).to_a.each do |number|
if num % number == 0
return false
else
return true
end
end
end
FYI, это не домашнее задание. Я переживаю проблемы с кодербетом. Любая помощь приветствуется!
«Предлагаю вам определить, каким должен быть алгоритм. При необходимости напишите на английском языке. Затем убедитесь, что вы правильно конвертируете его в Ruby »- [Cucumber] (http://cukes.info/), например. Прочитайте [Rpec Book] (http://www.amazon.com/RSpec-Book- Поведение-Развитие-Огурец/dp/1934356379/ref = sr_1_1? S = books & ie = UTF8 & qid = 1410408767 & sr = 1-1 & keywords = + rspec + book) –
@ J-Dizzle: Я думаю, что это слишком высокий уровень для тех, кто борется с синтаксис и управление базовым потоком. Лучшее введение в Ruby + TDD, которое я видел, это [RubyKoans] (http://rubykoans.com/). – Amadan