Accueil > > > CRIBLE D'ÉRATOSTHÈNE - LES NOMBRES PREMIERS
CRIBLE D'ÉRATOSTHÈNE - LES NOMBRES PREMIERS
Information sur la source
Description
Voilà une source fait en vitesse pour trouver si un nombre est premier d'une facon très rapide grace au crible d'Ératosthène. La raison de cette source ? http://www.phpcs.com/codes/SPIRALE-ULAM-NOMBRES-P REMIERS_42487.aspx Possaidait une facon de calculer un nombre premier juste, mais un peut lent a mon gout. Source du crible : http://fr.wikipedia.org/wiki/%C3%89ratosth%C3%A8 ne
Source
- <?php
- // Crible d'Ératosthène
-
- //Tableau du crible
- $Nombres_Premiers = array();
-
- function Cree_Crible($Max)
- {
- global $Nombres_Premiers;
-
- if($Max < 2) return 0;
-
- //Par défaut, tous les nombres sont premiers
- for($n = 2 ; $n <= $Max ; $n++)
- $Nombres_Premiers[$n] = TRUE;
- // Sauf pour 0 et 1
- $Nombres_Premiers[0] = $Nombres_Premiers[1] = FALSE;
- // On raye les nombres non premiers
- for($n = 2 ; $n <= $Max ; $n++)
- {
- if($Nombres_Premiers[$n] === TRUE)//Si le nombre est premier
- for($Multiple = 2 ; ($Multiple * $n) <= $Max ; $Multiple ++)//Pour tous ses multiples
- $Nombres_Premiers[$Multiple * $n] = FALSE;//On les concidèrent non premiers
- }
- return 1;
- }
-
- function est_premier($Nombre)
- {
- global $Nombres_Premiers;
- return (bool)$Nombres_Premiers[$Nombre];
- }
-
-
- Cree_Crible(65000);
- echo 'Nombres premier entre 0 et 65000 :<br/>'."\n";
- for($i = 0 ; $i <= 65000 ; $i++)
- if(est_premier($i))
- echo $i."<br/>\n";
- ?>
<?php
// Crible d'Ératosthène
//Tableau du crible
$Nombres_Premiers = array();
function Cree_Crible($Max)
{
global $Nombres_Premiers;
if($Max < 2) return 0;
//Par défaut, tous les nombres sont premiers
for($n = 2 ; $n <= $Max ; $n++)
$Nombres_Premiers[$n] = TRUE;
// Sauf pour 0 et 1
$Nombres_Premiers[0] = $Nombres_Premiers[1] = FALSE;
// On raye les nombres non premiers
for($n = 2 ; $n <= $Max ; $n++)
{
if($Nombres_Premiers[$n] === TRUE)//Si le nombre est premier
for($Multiple = 2 ; ($Multiple * $n) <= $Max ; $Multiple ++)//Pour tous ses multiples
$Nombres_Premiers[$Multiple * $n] = FALSE;//On les concidèrent non premiers
}
return 1;
}
function est_premier($Nombre)
{
global $Nombres_Premiers;
return (bool)$Nombres_Premiers[$Nombre];
}
Cree_Crible(65000);
echo 'Nombres premier entre 0 et 65000 :<br/>'."\n";
for($i = 0 ; $i <= 65000 ; $i++)
if(est_premier($i))
echo $i."<br/>\n";
?>
Conclusion
Défaut : Pour trouver si un grand nombre est premier, il faudra passer dabord par tous les autres.
Avantages : Très rapide lorsqu'on veut tester plusieurs nombre en quelques "nanosecondes" Un crible peut être enregistrer et réutiliser. ex : Si vous utilisez ceci dans un site, vous pouvez générer un fichier allant de 0 à 100 000, puis le réutiliser pour toutes les demandes de nombres premier.
Code débutant, rien d'extraordinaire, juste de la logique ...
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
MySQL - Ordonner des nombres [ par psychodingue ]
Alors voilà mon prob:Je voudrai ordonner par ordre inverse des nombres, alors j'me connecte à ma base de donner puis je fait:ORDER BY clics DESCJe fou
Splitter un texte en nombres [ par JMGR ]
Je cherche à stocker les forum déja vus par les utilisateurs d'un forum que je crée, mais je ne désire pas utiliser le cookies qui sont je trouve, com
Nombres entier [ par ekinoks ]
he... escusé moi mais he .... comment on fait pour avoir que les nombres entier de nombres decimoexemple :<?$truk = 3/2;echo $truk; //g envi qeu ic
plus rapide que msql_result [ par Isengard ]
Bonjour a tous.Je me rappelle avoir vu qqpart (oui oui) qu'il existait un moyen plus rapide que mysql_result.Par exemple j'ai une toable ou chaque lig
Grille de nombres [ par Tomcube ]
Salu,J'shui en train de faire un script de loto.A peine commencé, déjà un truc qui m'énerve : la grille de nombres. Je veux faire la même grille que s
Nombres de jours entre 2 dates! [ par jimmy69 ]
Bonjour a tous,Voila j'ai un p'tit stress ....si quelqu'un pouvait m'aider!En fait j'enregistre mes donnees ds une table mysql , des donnees comme le
récupérer les 7 premiers chiffre de l'IP [ par pyranhaz ]
Bonjour,J'aimerais pouvoir récupérer seulement les 7 premiers chiffres de $REMOTE_ADDR;C'est possible ???mon script anti-aspirateur serait davantage e
Suite de nombres [ par jak123 ]
Bonjour, j'ai codé une page photos, mon seul hic c'est que j'aimerai que mon chiffre 1 sur mon code ci-dessus, prenne les valeurs de 1 au nombre que j
Chaine de caractère [ par dao85 ]
BonjourJe débute juste en PHP et, après avoir écrit mes premiers scripts, je me heurte à un problème.Je souhaite simplement extraire les 5 premiers ca
définir un répertoire par défaut pour un upload rapide [ par skmancuso ]
Bonjour,Je souhaiterais savoir s'il y a un moyen quelconque de définir un répertoire par défaut avec la balise input type=file.Je suis
|
Derniers Blogs
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|