


Utiliser un script pour trouver des nombres premiers en php
En informatique, un nombre premier fait référence à un entier positif qui n'est divisible que par 1 et par lui-même. Les nombres premiers peuvent être utilisés dans des domaines tels que le cryptage, la dérivation mathématique et l'optimisation des algorithmes. Dans les applications pratiques, l'algorithme de recherche de nombres premiers est également l'un des points de connaissances très importants. Aujourd'hui, nous allons discuter de la façon d'utiliser des scripts en PHP pour trouver des nombres premiers.
- Méthode de filtrage
La méthode de filtrage est un algorithme classique pour trouver des nombres premiers. Son idée principale est de filtrer en continu les nombres qui ne sont pas des nombres premiers, et ce qui reste à la fin est un nombre premier. Les étapes spécifiques sont les suivantes :
- Initialisez un tableau premier $prime = array() et insérez-y des nombres de 2 à n (n est la plage requise).
- Pour le nombre 2~sqrt(n) (sqrt(n) représente la racine carrée de n), déterminez à votre tour s'il s'agit d'un nombre premier. Si c'est le cas, supprimez ses multiples du tableau de nombres premiers.
- Une fois la boucle terminée, les nombres restants dans le tableau de nombres premiers sont tous des nombres premiers.
Le code d'implémentation est le suivant :
function sieve($n) { $prime = array(); for($i = 2; $i <= $n; ++$i) { $prime[$i] = true; } for($i = 2; $i <= sqrt($n); ++$i) { if($prime[$i]) { for($j = $i*$i; $j <= $n; $j += $i) { $prime[$j] = false; } } } return array_keys(array_filter($prime)); }
- Le petit théorème de Fermat
Le petit théorème de Fermat est un théorème important de la théorie des nombres qui peut être utilisé pour déterminer si un nombre est premier. Le petit théorème de Fermat s'exprime comme suit : Si p est un nombre premier et a est un nombre entier quelconque, alors a^(p-1)≡1(mod p).
Les étapes spécifiques sont les suivantes :
- Sélectionnez au hasard un nombre a et déterminez si a et n sont premiers entre eux. S'ils ne le sont pas, renvoyez directement false.
- Calculez la valeur de a^(n-1) mod n, si elle n'est pas égale à 1, renvoyez false.
- Après de nombreux tests, si les deux conditions ci-dessus sont remplies, alors n est probablement un nombre premier.
Le code d'implémentation est le suivant :
function is_prime($n) { if($n <= 1) { return false; } for($i = 0; $i < 10; ++$i) { $a = rand(1, $n-1); if(gcd($a, $n) != 1) { return false; } if(mod_pow($a, $n-1, $n) != 1) { return false; } } return true; } function gcd($a, $b) { return ($b == 0) ? $a : gcd($b, $a%$b); } function mod_pow($base, $exp, $modulus) { $result = 1; while($exp > 0) { if($exp % 2 == 1) { $result = ($result * $base) % $modulus; } $exp = $exp >> 1; $base = ($base * $base) % $modulus; } return $result; }
Les deux méthodes ci-dessus permettent de trouver des nombres premiers à l'aide de scripts en PHP. Il convient de noter que la méthode de criblage est souvent plus efficace que le petit théorème de Fermat lors de la résolution d'une large gamme de nombres premiers.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Cet article détaille la mise en œuvre des files d'attente de messages en PHP à l'aide de RabbitMQ et Redis. Il compare leurs architectures (AMQP vs en mémoire), les fonctionnalités et les mécanismes de fiabilité (confirmations, transactions, persistance). Meilleures pratiques de conception, erreur

Cet article examine les normes de codage PHP actuelles et les meilleures pratiques, en se concentrant sur les recommandations PSR (PSR-1, PSR-2, PSR-4, PSR-12). Il met l'accent

Cet article explore l'exécution des tâches asynchrones en PHP pour améliorer la réactivité des applications Web. Il détaille des méthodes comme les files d'attente de messages, les cadres asynchrones (Reactphp, Swoole) et les processus de fond, mettant l'accent sur les meilleures pratiques pour Efficien

Cet article explique l'API de réflexion de PHP, permettant l'inspection d'exécution et la manipulation des classes, des méthodes et des propriétés. Il détaille les cas d'utilisation courants (génération de documentation, ORMS, injection de dépendance) et prévient contre la performance Overhea

Cet article détaille l'installation et le dépannage des extensions de PHP, en se concentrant sur PECL. Il couvre les étapes d'installation (trouver, télécharger / compilation, activer, redémarrer le serveur), dépannage des techniques (vérification des journaux, vérification de l'installation,

La compilation JIT de PHP 8 améliore les performances en compilant le code fréquemment exécuté en code machine, bénéficiant aux applications avec des calculs lourds et en réduisant les temps d'exécution.

Cet article aborde l'optimisation de la mémoire PHP. Il détaille des techniques comme l'utilisation de structures de données appropriées, d'éviter la création d'objets inutile et d'utiliser des algorithmes efficaces. Sources de fuite de mémoire communes (par exemple, connexions non clôturées, V global

Cet article explore les stratégies pour rester à jour dans l'écosystème PHP. Il met l'accent sur l'utilisation des canaux officiels, des forums communautaires, des conférences et des contributions open source. L'auteur met en évidence les meilleures ressources pour apprendre de nouvelles fonctionnalités et un
