fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char **argv)
  7. {
  8.  
  9. int a, b,nbCombinaison;
  10. string saisieTexteChiffre;
  11. string dechiffre;
  12. // saisie
  13. cout << "Outil déchiffrement affine" << endl;
  14.  
  15. cout << "Veuillez entrer le texte chiffré en majuscule : " ;
  16. getline(cin,saisieTexteChiffre);
  17. dechiffre = saisieTexteChiffre;
  18.  
  19. cout << "Veuillez entrer le coefficient directeur a : ";
  20. cin >> a;
  21.  
  22. cout << "Veuillez entrer l'ordonnée à l'origine b : ";
  23. cin >> b;
  24.  
  25. cout << "Table de déchiffrement" << endl;
  26. for(int i = 0; i < 26*a; i++)
  27. {
  28. cout << char((i%26+'A'))<< " ";
  29. }
  30.  
  31. cout << endl;
  32.  
  33. // table déchiffrement
  34. for(int i = 0; i < 26*a; i++)
  35. {
  36. cout << char(((i+'A'-'A' - b)/a)+'A') << " ";
  37. }
  38.  
  39. cout << endl << endl;
  40.  
  41. // déchiffrement
  42. cout << "Déchiffrement" << endl;
  43.  
  44. nbCombinaison = 0;
  45. for(int j=0;j<a;j++)
  46. {
  47. for(int i = 0 ; i < saisieTexteChiffre.length(); i++)
  48. {
  49. if(saisieTexteChiffre[i] >= 'A' && saisieTexteChiffre[i] <= 'Z')
  50. {
  51. cout << char(((saisieTexteChiffre[i]-'A'+nbCombinaison- b)/a)%26+'A');
  52. }
  53. else
  54. {
  55. cout << saisieTexteChiffre[i];
  56. }
  57. }
  58. cout << endl;
  59. nbCombinaison += 26;
  60. }
  61.  
  62.  
  63. return 0;
  64. }
Success #stdin #stdout 0s 4520KB
stdin
FDPJR BXRHJ JJBNJ JZNDZ RXXB
1
-1
stdout
Outil déchiffrement affine
Veuillez entrer le texte chiffré en majuscule : Veuillez entrer le coefficient directeur a : Veuillez entrer l'ordonnée à l'origine b : Table de déchiffrement
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 

Déchiffrement
GEQKS CYSIK KKCOK KAOEA SYYC