Я думал, что создам свою собственную реализацию алгоритма решета, чтобы быстрее находить простые числа. Удивительно, но это не проходит ряд тестов.
Вот мой алгоритм в Ruby для определения, является ли число простым.
def prime?(n)
primes = [2,3,5,7,9,11,13,17]
primes.include?(n) || primes.none? { |p| n % p == 0 }
end
Алгоритм работает следующим образом: вы берете первую пару простых чисел, я взял первые 8, чтобы быть в безопасности. Затем я бы отсеял все кратные этим простым числам, поскольку они никак не могут быть простыми.
Следовательно, все остальные числа должны быть простыми
Я был потрясен, узнав, что мои тесты провалились, и я пропустил некоторые цифры. Как это возможно? Я четко следую алгоритму.
Seive of Erastothenes
- это вы издеваетесь над именем с ошибкой или над проверкой орфографии в праздничной коме? - person greybeard   schedule 30.12.2015