IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Vérifier un nombre premier et calculer le nombre premier de Mersene


Sujet :

C

  1. #1
    Nouveau membre du Club

    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Haïti

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 26
    Points
    26
    Par défaut Vérifier un nombre premier et calculer le nombre premier de Mersene
    Salutation à tous et à toutes


    je pratique la programmation c.

    j'écris un petit programme qui détermine si un nombre est premier et qui calcule le nombre premier de Mersene.

    ce programme vérifie bien pour les nombres de 2 à 31.

    il arrive que au delà de 31 il donne des résultats négatifs.

    comment vous pourrez m'aider svp



    tous mes remerciements


    Tsiklag

  2. #2
    Membre actif
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2011
    Messages : 71
    Points : 214
    Points
    214
    Par défaut
    Bonjour, Le lien ne fonctionne pas il serait plus facile d'utiliser les balise CODE pour poster le code.

  3. #3
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Bonjour,

    Sans voir le code.
    Un int peut stocker un nombre de -231 à +231-1. Le nombre de Mersenne 32 vaut 232-1 il ne peut donc pas tenir dans un int.
    Pour atteindre des tailles plus grandes, on peut utiliser le type unsigned long long qui va de 0 à +264-1.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2011
    Messages : 71
    Points : 214
    Points
    214
    Par défaut
    Très juste d'ailleurs le type int peut même être limité a -215 à +215-1 selon l'architecture cible.
    Dans limits.h il y a INT_MIN et INT_MAX pour connaitre les valeurs acceptées par ce type sur l'architecture utilisée.

  5. #5
    Nouveau membre du Club

    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Haïti

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par pjlan Voir le message
    Très juste d'ailleurs le type int peut même être limité a -215 à +215-1 selon l'architecture cible.
    Dans limits.h il y a INT_MIN et INT_MAX pour connaitre les valeurs acceptées par ce type sur l'architecture utilisée.
    merci pour les messages
    ce que j'aurai besoin c'est: comment utilise un nombre plus grand. par exemple si je pourai verifier si ce nombre est premier 2^267464839 - 1

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Bonjour,
    Citation Envoyé par Tsiklag Voir le message
    merci pour les messages
    ce que j'aurai besoin c'est: comment utilise un nombre plus grand. par exemple si je pourai verifier si ce nombre est premier 2^267464839 - 1
    Il y a des bibliothèques multi-précision, permettant de calculer avec des nombres de taille uniquement limitée par les ressources de ton ordi.

    La plus connue est GMP, facile à trouver, je te laisse donc chercher.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 696
    Points : 2 438
    Points
    2 438
    Par défaut
    Si mes calculs sont bons, 2^267464839 - 1 est un nombre énorme avec 900 millions de chiffres.
    Calculer la racine carré de ce nombre donne un nombre à 30 000 chiffres.

    C'est beaucoup, je ne suis pas sur que ton PC arrivera à traiter ces nombres immenses, ou alors n’importe quel algorithme prendra une éternité à s'exécuter.
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  8. #8
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Ce nombre n'est-il pas le plus grand nombre premier connu?
    Ça a dû être prouvé en utilisant des méthodes toutes autres que l'algorithme d'Euclide.

    Par la méthode standard, je pense qu'il faudra attendre plusieurs siècles de calcul avec le meilleur PC du jour pour déterminer cela (ouais, on est bien dans une éternité pour nous autres simples mortels.)
    Viser les nombres de Mersenne jusqu'à M63 n'est déjà pas si mal.

  9. #9
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Bonjour,

    Effectivement, il y a des algorithmes spécifiques pour tester la primalité des nombres de Mersene.

    Je ne connais pas leur principe, seulement qu'ils existent.
    Si les cons volaient, il ferait nuit à midi.

  10. #10
    Nouveau membre du Club

    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Haïti

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 26
    Points
    26
    Par défaut merci pour les reponses.
    merci pour les reponses.
    surtout pour le programme GMP
    je l'ai deja telecharger

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Requête pour vérifier le nombre de personnes
    Par floctc dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 21/07/2009, 15h05
  2. algorithme pour vérifier un nombre
    Par irodav dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 05/07/2009, 22h27
  3. Vérifier le nombres de lignes et colonnes utilisé
    Par derin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/09/2008, 15h22
  4. vérifier le nombre de décimales
    Par peloman dans le forum Langage
    Réponses: 3
    Dernier message: 18/09/2007, 08h17
  5. [Jsp]Vérifier le nombre de connections
    Par antigone dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 21/08/2003, 10h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo