Trouver des nombres premiers entre 0 et 100 en JavaScript
Identifier des nombres premiers dans une plage donnée peut être une tâche difficile. Bien qu'il puisse sembler intuitif de vérifier chaque nombre individuellement à l'aide de l'opérateur de module, cette approche devient inefficace, en particulier pour les plages plus grandes.
Une approche alternative : le tamis d'Ératosthène
Un algorithme plus efficace pour ce problème est le Tamis d'Eratosthène. Cette méthode fonctionne en éliminant de manière itérative les nombres non premiers d'une liste de nombres premiers possibles.
Implémentation en JavaScript
<code class="javascript">function getPrimes(max) { var sieve = [], i, j, primes = []; for (i = 2; i <= max; ++i) { if (!sieve[i]) { // i has not been marked -- it is prime primes.push(i); for (j = i << 1; j <= max; j += i) { sieve[j] = true; } } } return primes; }</code>
Utilisation
Pour trouver tous les nombres premiers compris entre 2 et 100 :
<code class="javascript">var primes = getPrimes(100); console.log(primes);</code>
Sortie :
[ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 ]
Conclusion
L'utilisation du tamis d'Ératosthène fournit une méthode très efficace et fiable pour trouver des nombres premiers dans une plage spécifiée. Cette approche améliore considérablement les performances par rapport à la division d'essai et permet l'identification de nombres premiers pour des plages encore plus larges.
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!