Congruence des nombres premiers

Messages postés
310
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
6 juillet 2019
- - 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
- 25 nov. 2016 à 19:53
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

Afficher la suite 
ccgousset
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 ?
cptpingu
Messages postés
3797
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 novembre 2019
90 > ccgousset
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]
pgl10
Messages postés
310
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
6 juillet 2019
1 > cptpingu
Messages postés
3797
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 novembre 2019
-
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.
cptpingu
Messages postés
3797
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 novembre 2019
90 > pgl10
Messages postés
310
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
6 juillet 2019
-
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.
pgl10
Messages postés
310
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
6 juillet 2019
1 > cptpingu
Messages postés
3797
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 novembre 2019
-
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.