Maison >interface Web >js tutoriel >Comment déterminer efficacement si un nombre est premier en JavaScript ?

Comment déterminer efficacement si un nombre est premier en JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 17:57:031043parcourir

How can you efficiently determine if a number is prime in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn