Bonjour
Je voulais savoir, si possible, si la fonction isprime(entier) est indépendante du crible d'ératosthène ou bien elle l'utilise ?
Merci pour le renseignement.
fonction isprime et crible d'ératosthène
Voir le premier message non lu • 6 messages
• Page 1 sur 1
-
kadtexas
Niveau 9: IC (Compteur Infatigable)- Messages: 202
- Inscription: 29 Jan 2015, 19:32
- Genre:
- Classe: etudiant
Re: fonction isprime et crible d'ératosthène
Pas de crible ("sieve" en anglais) : d'après http://www.technicalc.org/tiplist/en/fi ... ip6_55.pdf, des détails sur l'algo utilisé sur les TI-68k donc vraisemblablement la même chose sur TI-Nspire :
[6.55] Algorithms for factor() and isPrime()
The following description of the algorithms for factor() and isPrime() was obtained from TI by Bhuvanesh Bhatt. It is included with TI's permission.TI a écrit:The algorithms used in the TI-92, TI-92 Plus, and TI-89 are described in D. Knuth, The Art of Computer Programming, Vol 2, Addison-Wesley, but here is a brief description:
The TI-92 simply divides by successive primes through the largest one less than 2^16.1: It doesn't actually keep a table or use a sieve to create these divisors, but cyclically adds the sequence of
increments 2, 2, 4, 2, 4, 2, 4, 6, 2, 6 to generate these primes plus a few extra harmless composites.
TI-92 Plus and TI-89 start the same way, except that they stop this trial division after trial divisor 1021, then switch to a relatively fast Monte-Carlo test that determines whether the number is certainly composite or is almost certainly prime. (Even knowing the algorithm, I cannot construct a composite number that it would identify as almost certainly prime, and I believe that even centuries of continuous experiments with random inputs wouldn't produce such a number).
The isPrime() function stops at this point returning either false or (almost certainly) true.
If the number is identified as composite, the factor() function then proceeds to the Pollard Rho factorization algorithm. It is arguably the fastest algorithm for when the second largest prime factor has less than about 10 digits. There are faster algorithms for when this factor has more digits, but all known algorithms take expected time that grows exponentially with the number of digits. For example, the Pollard Rho algorithm would probably take centuries on any current computer to factor the product of two 50-digit primes. In contrast, the isPrime() function would quickly identify the number as composite.
Both the compositivity test and the Pollard Rho algorithm need to square numbers as large as their inputs, so they quit with a "Warning: ... Simplification might be incomplete." if their inputs exceed about 307 digits.
-
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 12181
- Images: 848
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):
- Classe: (ingénieur)
- Twitter: adriweb
- GitHub: adriweb
Re: fonction isprime et crible d'ératosthène
Merci pour la lecture.
Je ne pensais pas qu'il y avait tous ces algorithmes et surtout ils peuvent mettre des siècles pour factoriser un entier produit de deux nombres premiers (50 chiffres chacun).
Mon petit programme est du niveau "primaire" juste pour générer les nombres premiers entre n et m.
Je ne pensais pas qu'il y avait tous ces algorithmes et surtout ils peuvent mettre des siècles pour factoriser un entier produit de deux nombres premiers (50 chiffres chacun).
Mon petit programme est du niveau "primaire" juste pour générer les nombres premiers entre n et m.
- Code: Tout sélectionner
Define LibPub fpremiers(n,m)=
Func
:Local p
:For p,n,m
: If isPrime(p) Then
: Disp p
: EndIf
:EndFor
:Return "ok"
:EndFunc
-
kadtexas
Niveau 9: IC (Compteur Infatigable)- Messages: 202
- Inscription: 29 Jan 2015, 19:32
- Genre:
- Classe: etudiant
Re: fonction isprime et crible d'ératosthène
Il n'y a aucun rapport entre les 3 problèmes suivants :
1) Déterminer si un entier donné est premier ou non (ce que fait la fonction "isprime")
2) Déterminer la liste de tous les entiers premiers inférieurs ou égaux à un entier donné (ce que fait le crible d'Ératosthène)
3) Factoriser un entier donné.
Dans le premier cas, on connait des algorithmes très efficaces, capables de décider en quelques millièmes de secondes si des nombres de quelques centaines de chiffres sont premiers ou non.
Dans le 2ème cas, on ne connaît pas grand chose de mieux que le crible d'Ératosthène lui-même... mais il permet déjà d'établir une telle liste en quelques secondes pour des entiers ayant moins de 10 chiffres.
Dans le 3ème cas, on connaît plein d'algorithmes, la plupart étant plus ou moins efficaces suivant le champ d'application, c'est-à-dire suivant la forme des nombres auxquels on les applique. C'est un problème bien plus complexe que les deux précédents... et c'est justement sur le fait que ce soit complexe que se basent une grande partie des systèmes de cryptage.
1) Déterminer si un entier donné est premier ou non (ce que fait la fonction "isprime")
2) Déterminer la liste de tous les entiers premiers inférieurs ou égaux à un entier donné (ce que fait le crible d'Ératosthène)
3) Factoriser un entier donné.
Dans le premier cas, on connait des algorithmes très efficaces, capables de décider en quelques millièmes de secondes si des nombres de quelques centaines de chiffres sont premiers ou non.
Dans le 2ème cas, on ne connaît pas grand chose de mieux que le crible d'Ératosthène lui-même... mais il permet déjà d'établir une telle liste en quelques secondes pour des entiers ayant moins de 10 chiffres.
Dans le 3ème cas, on connaît plein d'algorithmes, la plupart étant plus ou moins efficaces suivant le champ d'application, c'est-à-dire suivant la forme des nombres auxquels on les applique. C'est un problème bien plus complexe que les deux précédents... et c'est justement sur le fait que ce soit complexe que se basent une grande partie des systèmes de cryptage.
-
BisamAdmin.
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 5396
- Inscription: 11 Mar 2008, 00:00
- Localisation: Lyon
- Genre:
- Calculatrice(s):
- Classe: Prof de Math en Maths Spé PSI
Re: fonction isprime et crible d'ératosthène
Merci Bisam pour tes explications.
Donc il faudra que j'applique le crible d'Ératosthène pour être en "conformité"
Donc il faudra que j'applique le crible d'Ératosthène pour être en "conformité"
-
kadtexas
Niveau 9: IC (Compteur Infatigable)- Messages: 202
- Inscription: 29 Jan 2015, 19:32
- Genre:
- Classe: etudiant
Re: fonction isprime et crible d'ératosthène
Tu peux sans doute utiliser ta méthode pour de petites valeurs de n et m.
Tu peux simplifier ainsi :
Tu peux simplifier ainsi :
- Code: Tout sélectionner
Define Libpub fpremiers(n, m)=
Func
Return delvoid(seq(when(isPrime(p),p,_),p,n,m))
EndFunc
-
BisamAdmin.
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 5396
- Inscription: 11 Mar 2008, 00:00
- Localisation: Lyon
- Genre:
- Calculatrice(s):
- Classe: Prof de Math en Maths Spé PSI
6 messages
• Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité