Maison  >  Article  >  interface Web  >  Comment trouver des nombres premiers inférieurs à 100 en JavaScript

Comment trouver des nombres premiers inférieurs à 100 en JavaScript

PHPz
PHPzoriginal
2023-04-24 10:47:401484parcourir

JavaScript est un langage de programmation couramment utilisé qui fournit des fonctions très puissantes pour résoudre divers problèmes. Dans cet article, nous explorerons comment utiliser JavaScript pour trouver des nombres premiers jusqu'à 100.

Les nombres premiers font référence à des nombres naturels supérieurs à 1 qui ne sont pas divisibles par d'autres nombres naturels sauf 1 et lui-même. En informatique, la résolution des nombres premiers est un problème très courant car ils jouent un rôle très important dans des domaines tels que le cryptage et la cryptographie. L’un des moyens les plus simples de vérifier si un nombre est premier est la division par essais. L'idée de base de la division par essai est la suivante : pour chaque nombre n à détecter, essayez de diviser n par chaque nombre de 2 à n-1. Si n ne peut pas être divisé, alors n est un nombre premier.

Voici le code pour implémenter cet algorithme en JavaScript :

//定义一个函数来检测一个数是否为素数
function isPrime(num) {
  //1和0不是素数
  if (num <= 1) {
    return false;
  }
  //2是素数
  if (num === 2) {
    return true;
  }
  //大于2的偶数不是素数
  if (num % 2 === 0) {
    return false;
  }
  //尝试从3到num-1之间的奇数去整除num
  for (let i = 3; i < num; i += 2) {
    if (num % i === 0) {
      return false;
    }
  }
  //如果都无法整除,那么num就是素数
  return true;
}

//测试函数
for (let i = 1; i <= 100; i++) {
  if (isPrime(i)) {
    console.log(i + "是素数");
  } else {
    console.log(i + "不是素数");
  }
}

Dans le code ci-dessus, nous définissons d'abord une fonction isPrime pour détecter si un nombre est premier. Son processus d'implémentation spécifique est le suivant :

  1. Si num est inférieur ou égal à 1, alors num n'est pas un nombre premier et false est renvoyé.
  2. Si num est égal à 2, alors num est un nombre premier et renvoie vrai.
  3. Si num est un nombre pair supérieur à 2, alors num n'est pas un nombre premier et renvoie faux.
  4. Essayez de diviser num avec des nombres impairs de 3 à num-1. S'il ne peut pas être divisé, num est un nombre premier et true est renvoyé.
  5. Si aucune des conditions ci-dessus n'est remplie, alors num n'est pas un nombre premier et false est renvoyé.

Ensuite, nous utilisons une boucle pour tester si chaque nombre compris entre 1 et 100 est un nombre premier. S'il s'agit d'un nombre premier, affichez le nombre, sinon la sortie n'est pas un nombre premier.

Je ne montrerai pas tous les résultats de sortie ici, mais les résultats en cours sont tous corrects.

Dans le développement réel, nous devrons peut-être déterminer si un nombre supérieur à 100 est un nombre premier. Dans ce cas, utiliser la division par essai prendra beaucoup de temps car le nombre de valeurs de 2 à num-1 est très élevé. Nous devons donc utiliser des algorithmes plus efficaces pour déterminer si un nombre est premier. L'un des algorithmes couramment utilisés est la « méthode du tamis d'Ehrlich », qui permet de trouver tous les nombres premiers de 1 à n dans une complexité temporelle de O(nloglogn). Cependant, dans cet article, nous ne présentons et mettons en œuvre que la division par première instance.

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