Bonjour,

je suis en train de ramer sur les conditions logiques. Je demande à l'utilisateur d'entrer deux nombres a et b tant que le PGCD(a,26) est différent de 1 et que l'inverse modulaire de a par 26 est égal à -1 (retour d'erreur).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
  //Initialisation de la clé
  do{
    printf("Entrez la valeur \'a\' de la clef : ");
    scanf("%d",&a);
    printf("Entrez la valeur \'b\' de la clef : ");
    scanf("%d",&b);
  }while ((PGCD(a,26) != 1) && (inv_mod(a) == -1));
  printf("Clef validee ! \n");
Ça à l'air tout simple, mais mon programme bug à cause de l'inverse modulaire un peu plus loin. Si ça bug, ça veut dire qu'il laisse passer des valeurs a et b non acceptables par la suite. J'ai beau faire des tables de vérité mais je ne trouve pas mon erreur.

Y aurait-il une âme charitable pour m'aider?

Merci d'avance