Показать сообщение отдельно
  #20 (permalink)  
Старый 22.01.2019, 22:02
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от 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"));

Последний раз редактировалось Malleys, 22.01.2019 в 22:05.
Ответить с цитированием