DETERMINATION DE CLÉ RSA

cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003 - 23 févr. 2003 à 22:01
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 4 juil. 2004 à 19:31
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/10444-determination-de-cle-rsa

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 juil. 2004 à 19:31
pour la boucle de 2 a la racine carrée, vous n'avez pas besoin de la librairie math.h
de 2 a racine de b
for (a=2, a*a<b+1; a++){
if (b%a==0){
nombre qui n'est pas premier
}
}
Sensei01 Messages postés 94 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 27 juin 2006
24 févr. 2003 à 18:36
c vrai, ce code n'est pas idéal, mais je l'ai tapé en vitesse car j'en avais besoin.
....
cs_tavernier Messages postés 47 Date d'inscription mardi 1 octobre 2002 Statut Membre Dernière intervention 3 juin 2003
24 févr. 2003 à 12:28
pour tester la primalité.
Ton code regarde tout d'abord s'il est divisible par deux (donc s'il est pair). Si la boucle continue, c'est qu'il ne l'est pas, donc il ne peut etre divisible par aucun nombre pair (tu testes pourtant tous les nombes inférieurs a data).
Personnellement à la place de j++, je mettrais j==2?j++:j+=2;

Voila
julien
cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003
23 févr. 2003 à 22:01
salut,
Juste quelques conseils pour améliorer le code :
-Pour tester la primalité de ton nombre (data), il suffit de tester les division de 2 à racine de data inclus. (#include <math.h>, sqrt(data) );
- je vois que pour convertir data en float, tu multiplies par 1.0. tu peux faire static_cast<float> (data) pour la convertir en float le temps de la division.
- Au lieu de diviser en float, puis de reconvertir en long, il vaut mieux faire le test :
if (data % j ==0) {
val=1;
printf("..");
break;
}
- En C++, utiliser le type bool (false ou true) rend le prgm plus clair (je pense pour la valeur de retour de verif_premier).
raph
Rejoignez-nous