所以 #[11,13,17,23] => [13,17,19,29]
給定一個數組,下一個素數
替換每個質數,如果數不是素數,則該函數返回只是我有這樣的數量 #[11,8,2,24] => [13,8,3,24]
最後一個數字(29)出了很多麻煩,出於某種原因,它將陷入無限循環。我覺得有這樣一個簡單的解決方案,但它只是逃避我。
def next_prime(arr)
new_arr = []
arr.each do |num|
#puts num
if prime?(num)
p = false
i = num + 2
while !p
p = prime?(i)
i += 2
end
new_arr << i
else
new_arr << num
end
end
new_arr
end
編輯:這裏是主要功能
def prime?(num)
if num ==1
return false
elsif num < 3
return true
elsif num % 2 == 0 || num % 3 == 0
return false
end
i = 5
while i*i <= num
if num % i == 0 || num % (i + 2) == 0
return false
end
i += 6
end
return true
end
你可以請發佈主要功能?也許這是29的返回false。 – Darzen
我添加了上面的主要功能,並確認當調用它時,29是素數 – Yitzhak