Numérologie I

Messages postés
6
Date d'inscription
mardi 21 novembre 2017
Statut
Membre
Dernière intervention
21 novembre 2017
- - Dernière réponse : pgl10
Messages postés
310
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
6 juillet 2019
- 13 mars 2019 à 17:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/102311-numerologie-i

Afficher la suite 
pgl10
Messages postés
310
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
6 juillet 2019
1 -
Bonjour,
Pour vérifier la primalité d'un int (4 octets) on peut utiliser :

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;
}
pgl10
Messages postés
310
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
6 juillet 2019
1 -
Bonjour,
Le 100 000 000-ième nombre premier est : 2 038 074 743
Ce nombre tient dans un int sur 4 octets (max : 2 147 483 647).
Pour nnp = 10 000 000 le temps de calcul est d'environ 12 secondes.
Et pour nnp = 100 000 000 il est d'environ 5 minutes et 30 secondes.