Congruence des nombres premiers

Signaler
Messages postés
317
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
7 août 2020
-
Messages postés
317
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
7 août 2020
-
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/101745-congruence-des-nombres-premiers

Messages postés
147
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
5 novembre 2019

Pgl merci pour ton code sur code de gray. Celui si projet microsoft ne compil pas direct avec gcc. Tu aurais pas une config pour gcc ou codeblocks ?
Messages postés
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 2020
109 >
Messages postés
147
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
5 novembre 2019

En fait son code compile bien sous gcc, c'est juste qu'il faut ajouter l'option -std=c++11 et renommer certains fichiers. La casse n'est pas prise en compte sous Windows mais l'est sous Linux. Donc il faut qu'il nomme ses fichiers "BigInteger.cpp" et non "biginteger.cpp".

Pour info, il y a aussi quelques petits warnings:
BigInteger.cpp: In constructor ‘BigInteger::BigInteger(uint32_t)’:
BigInteger.cpp:79:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
BigInteger.cpp: In constructor ‘BigInteger::BigInteger(uint64_t)’:
BigInteger.cpp:92:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
BigInteger.cpp: In function ‘BigInteger addubi(BigInteger, BigInteger)’:
BigInteger.cpp:448:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
BigInteger.cpp: In function ‘BigInteger lenstraFactor(const BigInteger&, int32_t)’:
BigInteger.cpp:1267:35: warning: variable ‘nb_primes’ set but not used [-Wunused-but-set-variable]
Messages postés
317
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
7 août 2020
2 >
Messages postés
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 2020

Bonjour CptPingu,
Je n'ai avec moi ni Linux ni gcc.
Mais j'ai fait une compilation en ligne avec gcc sous linux avec :
https://www.tutorialspoint.com/compile_cpp11_online.php
et la commande : g++ -Wall -std=c++11 -o main *.cpp
Cela fonctionne, mais je n'obtiens que le dernier warning, celui de 'nb_primes'.
Que faut-il faire pour obtenir les 4 warnings listés ci-dessus ?
Cela m'aiderait pour les corriger.
Remerciements.
Messages postés
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 2020
109 >
Messages postés
317
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
7 août 2020

Le souci que tu as, n'est pas un souci de code, mais d'OS. Tu as utilisé des noms de fichiers différents et comme Windows est laxiste sur ce point, il les a accepté (il ne regarde pas la casse). En effet, "biginteger.cpp" et "BigInteger.cpp" ne sont pas identiques (mais pour Windows, si). Si tu regardes bien dans tes inclusions, tu verras que tu choisis deux orthographes différentes pour parler du même fichier. C'est ça qui passe mal sous Linux.

Quant au warning manquant, je ne saurais te dire :(. Je suppose que cela vient de la version de gcc utilisée qui doit gérer cela différemment. Il n'y a normalement rien à faire pour l'avoir.
Messages postés
317
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
7 août 2020
2 >
Messages postés
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 2020

Merci pour cette réponse et les deux renseignements indiqués. Les warnings listés ci-dessus ne sont pas méchants et on peut aussi les corriger en y regardant attentivement.