Maison >interface Web >js tutoriel >Comment déterminer efficacement si un nombre est premier en JavaScript ?
Vérifier efficacement les nombres premiers en JavaScript
En programmation informatique, déterminer si un nombre donné est premier est une tâche fondamentale. Un nombre premier est un entier positif supérieur à 1 qui n'a pas de diviseur positif autre que 1 et lui-même.
Une approche populaire pour vérifier la primalité implique le tamis d'Ératosthène. Cependant, pour des raisons de performances, une méthode plus efficace peut être utilisée, comme démontré dans l'implémentation JavaScript suivante :
let inputValue = 7; let isPrime = inputValue == 1 ? false : true; // Because 1 is not prime for (let i = 2; i < inputValue; i++) { inputValue % i == 0 ? isPrime *= false : isPrime *= true; } alert(`${inputValue} is ${isPrime ? 'prime' : 'not prime'} number`);
Analyse de la complexité temporelle et spatiale
Le temps la complexité de l'algorithme ci-dessus est O(sqrt(n)), où n représente la valeur d'entrée. En effet, la boucle parcourt tous les entiers jusqu'à la racine carrée du nombre d'entrée, ce qui constitue une optimisation significative par rapport à la vérification de tous les entiers jusqu'à n.
La complexité spatiale est O(1), car il ne nécessite aucune structure de données supplémentaire au-delà des variables primitives.
Approche alternative
Une syntaxe alternative pour vérifier la primalité en JavaScript est :
const isPrime = num => { for (let i = 2, s = Math.sqrt(num); i <= s; i++) { if (num % i === 0) return false; } return num > 1; }
Cette approche atteint la même complexité temporelle et spatiale que la précédente tout en utilisant une syntaxe de fonction flèche plus concise.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!