Сообщение от Diphenyl Oxalate
|
Ваш код работает медленнее.
|
Да, там достаточно ресурсо-затратное вычисление следующего кандидата на простое число. Особенно потому, что я пытался вычислять простые числа через рекурсию. Простые числа могут принадлежать множеству { 2, 3, 6n ± 1 }, где n > 0, n ∈ Z, и через цикл с шагом 6(а не с шагом 1, как в посте №13) оно же в 3 раза меньше чисел будет проверять, не так ли?
function isPrime(number) {
if(number === 2 || number === 3)
return true;
var limit = 1 + Math.sqrt(number);
if(number < 2 || number % 2 == 0 || number % 3 == 0)
return false;
for(var index = 6; index <= limit; index += 6) {
if(number % (index - 1) === 0) return false;
if(number % (index + 1) === 0) return false;
}
return true;
}
alert([22, 23].map(function(v) {
return v + " " + isPrime(v)
}).join("\n"));