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 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 17:56:30540parcourir

How to Efficiently Determine if a Number is Prime in JavaScript?

Vérification des nombres premiers en JavaScript

Cet article aborde le problème de déterminer si un nombre donné est premier ou n'utilise pas JavaScript. Un nombre premier est un entier supérieur à 1 qui n'est divisible par aucun autre nombre naturel sauf 1 et lui-même.

Solution 1

La méthode traditionnelle consiste à itérer à partir de 2 à la racine carrée du nombre saisi et en vérifiant si le nombre est divisible par l'un d'entre eux. Si c'est le cas, ce n'est pas premier ; sinon, c'est le cas.

<code class="javascript">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`);

Complexité temporelle : O(sqrt(n))
Complexité spatiale : O(1)

Solution 2

Une approche alternative utilise le fait qu'un nombre premier supérieur à 2 ne peut pas être impair. Ainsi, il suffit de vérifier la divisibilité par 2 puis par nombres impairs jusqu'à la racine carrée du nombre saisi. Cette optimisation réduit considérablement le temps d'exécution.

<code class="javascript">const isPrime = num => {
  if (num <= 1) return false;
  if (num <= 3) return true;
  if (num % 2 == 0 || num % 3 == 0) return false;
  for (let i = 5; i * i <= num; i += 6) {
    if (num % i == 0 || num % (i + 2) == 0) return false;
  }
  return true;
};</code>

Complexité temporelle : O(sqrt(n))
Complexité spatiale : O(1)

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