Я новичок в Ruby и читал об этой программе, которая находит простые числа.
Этот пример попал в учебник, после разговора о циклах (пока и до) он показал этот пример.
Я нахожу это довольно запутанным. Какова цель Prime_flag? Почему J установлено как 2?
(j <= i / 2) -- Этого я не понимаю.
j = j + 1 -- какова цель этого.
Прошу прощения за длинный вопрос, но любая помощь приветствуется. Пожалуйста и спасибо вам.
# Initialize our counter
i = 1
# i: [0, 100]
while (i <= 100)
# Initialize prime flag
prime_flag = true
j = 2
# Test divisibility of i from [0, i/2]
while (j <= i / 2)
# puts " i ==> " to i.to_s + " j ==> " + j.to_s
if (i % j == 0)
prime_flag = false
# break
end
j = j + 1
end
# We found a prime!
if prime_flag
puts "Prime ==> " + i.to_s"
end
# Increment the counter
i += 1
end
j <= i/2 (Если нам нужно найти только его квадратный корень, зачем написана эта строка кода?
@RedisPurple, вероятно, автор учебника этого не знал. Проверка до половины i не делает код «неправильным», просто неэффективным.