我在Ruby嘗試了Project Euler question 35(我對它很陌生)並且得到了錯誤的答案。Ruby Project Euler 35-Circular Primes錯誤的答案
問題:
的數量,197,被稱爲圓形素,因爲 數字所有旋轉:197,971,719,本身就是黃金。
有低於100 13米這樣的素數:2,3,5,7,11,13,17,31,37 ,71,73,79,和97。
多少圓形的素數是有低於一百萬?
我的代碼:
require 'prime'
def primes(n)
nums = [nil, nil, *2..n]
(2..Math.sqrt(n)).each do |i|
(i**2..n).step(i) { |m| nums[m] = nil } if nums[i]
end
nums.compact
end
prime = primes(1000000)
circularPrimes = 0
prime.each do |j|
puts "\n"
puts j
flag = false
j = j.to_s()
for k in (0..j.length)
temp = j[k..-1] + j[0..k]
temp = temp.to_i()
a = Prime.prime?(temp)
if a == false then
flag = true
break
end
end
if flag == false then
circularPrimes += 1
end
end
puts"\n\n\n\n\n"
puts circularPrimes
我想不出在代碼中的問題(我認爲這是罰款)。
邊注:不是自己生成素數,你可以做'Prime.each(1_000_000)' –
啊,但有關的答案是什麼 – Bhavya
請描述你的電流輸出是什麼以及爲什麼你認爲這是錯誤的。 – 2014-03-28 08:19:17