ddggbeda
Messages postés33Date d'inscriptionmercredi 22 novembre 2017StatutMembreDernière intervention28 novembre 2017
-
27 nov. 2017 à 15:39
William VOIROL
Messages postés261Date d'inscriptionmardi 12 décembre 2006StatutMembreDernière intervention10 juin 2019
-
31 mars 2019 à 09:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
William VOIROL
Messages postés261Date d'inscriptionmardi 12 décembre 2006StatutMembreDernière intervention10 juin 2019 31 mars 2019 à 09:24
Bonjour pgl10,
Merci pour ce code intéressant !
Il m'a inspiré une "prolongation".
Georges_46
Messages postés1Date d'inscriptionmardi 12 mars 2019StatutMembreDernière intervention15 mars 2019 15 mars 2019 à 19:20
c'est intéressant moi je connais que deux façons de calculer les nombres premiers une méthode rapide et le crible d'erathostène
pgl10
Messages postés380Date d'inscriptionsamedi 18 décembre 2004StatutMembreDernière intervention29 octobre 202311 15 mars 2019 à 18:26
Bonjour,
Pour vérifier la primalité d'un int on peut utiliser la fonction suivante très simple :
bool isprem(int n) {
unsigned int t[]={4,2,4,2,4,6,2,6};
if(n < 2) return false;
if(n%2 == 0) return n==2;
if(n%3 == 0) return n==3;
if(n%5 == 0) return n==5;
unsigned int m = n;
unsigned int s = 7;
for(unsigned int i=7; i*i<=m; i=i+t[s]) {
if(m%i==0) return m==i;
if(++s == 8) s=0;
}
return true;
}
Le contrôle de primalité de Miller et Rabin sous sa forme probabiliste ou même sous sa forme déterministe conviendrait aussi mais il est utilisé normalement pour des entiers de plus grande taille. Pour un entier de type int sur 4 octets ce code est bien suffisant.
31 mars 2019 à 09:24
Merci pour ce code intéressant !
Il m'a inspiré une "prolongation".
15 mars 2019 à 19:20
15 mars 2019 à 18:26
Pour vérifier la primalité d'un int on peut utiliser la fonction suivante très simple :
Le contrôle de primalité de Miller et Rabin sous sa forme probabiliste ou même sous sa forme déterministe conviendrait aussi mais il est utilisé normalement pour des entiers de plus grande taille. Pour un entier de type int sur 4 octets ce code est bien suffisant.