Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. int p;
  7. int g[100];
  8. int gen;
  9. int aux;
  10. char mesaj[100];
  11. int cod;
  12.  
  13. void codificare()
  14. {
  15. for (int i = 0; i < strlen(mesaj); i++)
  16. mesaj[i] = mesaj[i] + char(g[mesaj[i] - 'A']);
  17. }
  18.  
  19. void decodificare()
  20. {
  21. for (int i = 0; i < strlen(mesaj); i++)
  22. mesaj[i] = mesaj[i] - char(g[i]);
  23. }
  24.  
  25. int prim(int n)
  26. {
  27. for (int i = 2; i <= n / 2; i++)
  28. if (n % i == 0)
  29. return (0);
  30. return (1);
  31. }
  32.  
  33. int main()
  34. {
  35. cin >> p;
  36. if (prim(p))
  37. ;
  38. else
  39. {
  40. cout << "p nu este prim";
  41. return -1;
  42. }
  43.  
  44. for (int n = 2; n < p; n++)
  45. {
  46. g[0] = 1;
  47. gen = 1;
  48. for (int i = 1; i < p - 1; i++)
  49. {
  50. g[i] = ( n * g[i - 1] ) % p;
  51. for (int j = 0; j < i; j++)
  52. if (g[i] == g[j])
  53. gen = 0;
  54. if (gen == 0)
  55. break;
  56. }
  57. if (gen == 1)
  58. {
  59. gen = n;
  60. n = p;
  61. }
  62. }
  63.  
  64. cout << "generatorul este ";
  65. cout << gen;
  66. cout << endl;
  67. for (int i = 0; i < p - 1; i++)
  68. cout << g[i];
  69.  
  70. cout << '\n';
  71. cin >> mesaj;
  72. cin >> cod;
  73. if (cod == 1)
  74. codificare();
  75. else if (cod == 2)
  76. decodificare();
  77. else
  78. cout << "eroare";
  79.  
  80. cout << mesaj;
  81. return (0);
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement