HOWTO · JavaScript
isPrime en JavaScript
Ce tutoriel enseigne comment vérifier si un nombre est premier en JavaScript.
Sur cette page
Un nombre premier est supérieur à un avec deux facteurs - un et lui-même. Cela signifie que les nombres premiers laissent toujours un reste lorsqu’ils sont divisés par d’autres nombres. Les autres nombres supérieurs à un avec plus de deux facteurs sont appelés nombres composés.
Cet article discutera de différentes méthodes pour vérifier si un nombre est premier en JavaScript.
Solution naïve pour vérifier si un nombre est premier en JavaScript
Le moyen le plus simple de vérifier si un nombre n est premier est d’itérer de 2 à n-1 puis de vérifier si n est divisible par chacun d’eux.
function isPrime(n) {
if (n <= 1) return false;
for (var i = 2; i <= n - 1; i++)
if (n % i == 0) return false;
return true;
}
console.log(isPrime(70));
console.log(isPrime(23));
Complexité temporelle
On itère n-2 fois de 2 à n-1. La complexité temporelle de cette solution est O(n).
Complexité spatiale
La complexité spatiale de cette solution est O(1).
Solution racine carrée pour vérifier si un nombre est premier en JavaScript
La solution ci-dessus peut s’améliorer en itérant uniquement jusqu’à sqrt(n). Il est basé sur le fait que sqrt(n) * sqrt(n) = n, et il doit y avoir au moins un facteur inférieur ou égal à sqrt(n). Si nous ne trouvons aucun facteur dans la plage de [2, sqrt(n)], cela signifie que le nombre n est un nombre premier.
function isPrime(n) {
if (n <= 1) return false;
for (var i = 2; i <= Math.sqrt(n); i++)
if (n % i == 0) return false;
return true;
}
console.log(isPrime(70));
console.log(isPrime(23));
Complexité temporelle
Puisque nous itérons les premiers facteurs potentiels sqrt(n), la complexité temporelle de la solution ci-dessus est sqrt(n).
Complexité spatiale
La complexité spatiale de cette solution est O(1).