Comptabilité

ddggbeda Messages postés 33 Date d'inscription mercredi 22 novembre 2017 Statut Membre Dernière intervention 28 novembre 2017 - 27 nov. 2017 à 15:39
William VOIROL Messages postés 261 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 10 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.

https://codes-sources.commentcamarche.net/source/102339-comptabilite

William VOIROL Messages postés 261 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 10 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és 1 Date d'inscription mardi 12 mars 2019 Statut Membre Dernière intervention 15 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és 380 Date d'inscription samedi 18 décembre 2004 Statut Membre Dernière intervention 29 octobre 2023 11
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.
Rejoignez-nous