Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string.h>
- using namespace std;
- int p;
- int g[100];
- int gen;
- int aux;
- char mesaj[100];
- int cod;
- void codificare()
- {
- for (int i = 0; i < strlen(mesaj); i++)
- mesaj[i] = mesaj[i] + char(g[mesaj[i] - 'A']);
- }
- void decodificare()
- {
- for (int i = 0; i < strlen(mesaj); i++)
- mesaj[i] = mesaj[i] - char(g[i]);
- }
- int prim(int n)
- {
- for (int i = 2; i <= n / 2; i++)
- if (n % i == 0)
- return (0);
- return (1);
- }
- int main()
- {
- cin >> p;
- if (prim(p))
- ;
- else
- {
- cout << "p nu este prim";
- return -1;
- }
- for (int n = 2; n < p; n++)
- {
- g[0] = 1;
- gen = 1;
- for (int i = 1; i < p - 1; i++)
- {
- g[i] = ( n * g[i - 1] ) % p;
- for (int j = 0; j < i; j++)
- if (g[i] == g[j])
- gen = 0;
- if (gen == 0)
- break;
- }
- if (gen == 1)
- {
- gen = n;
- n = p;
- }
- }
- cout << "generatorul este ";
- cout << gen;
- cout << endl;
- for (int i = 0; i < p - 1; i++)
- cout << g[i];
- cout << '\n';
- cin >> mesaj;
- cin >> cod;
- if (cod == 1)
- codificare();
- else if (cod == 2)
- decodificare();
- else
- cout << "eroare";
- cout << mesaj;
- return (0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement