Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- int zapulvane(int *arr, unsigned n) {
- for (unsigned i = 0; i < n; i++) {
- arr[i] = i;
- }
- return 0;
- }
- int subirane(int a, int b, unsigned n) {
- return (a + b) % n;
- }
- int izvajdane(int a, int b, unsigned n)
- {
- int sum = 0;
- sum = a - b;
- if (sum<0) {
- sum = abs(sum);
- return n - sum;
- }
- else return sum % n;
- }
- int umnojenie(int a, int b, unsigned n) {
- return (a*b) % n;
- }
- int recelem(unsigned n, int elem) {
- for (unsigned i = 0; i<n; i++)
- {
- if (umnojenie(i, elem, n) == 1) {
- return i;
- break;
- }
- }
- return 0;
- }
- int delenie(int a, int b, unsigned n) {
- if (recelem(n, b) > 0) {
- return umnojenie(a, recelem(n, b), n);
- }
- else {
- return -1;
- }
- }
- int reciprochen(int **arr, unsigned cn) {
- int t = 0;
- for (unsigned j = 0; j<cn; j++)
- {
- t = arr[1][j];
- arr[1][j] = arr[0][j];
- arr[0][j] = t;
- }
- for (unsigned i = 0; i<2; i++)
- {
- for (unsigned j = 0; j<cn; j++)
- {
- std::cout << " " << arr[i][j];
- }
- std::cout << std::endl;
- }
- return 0;
- }
- int dvoiki(unsigned n)
- {
- unsigned cn = 0;
- for (unsigned i = 0; i<n; i++)
- {
- for (unsigned j = i; j<n; j++)
- {
- if (umnojenie(i, j, n) == 1) {
- cn++;
- }
- }
- }
- int **ar = NULL;
- ar = new int*[2];
- for (unsigned i = 0; i<2; i++)
- {
- ar[i] = new int[cn];
- }
- cn = 0;
- for (unsigned i = 0; i<n; i++)
- {
- for (unsigned j = i; j<n; j++)
- {
- if (umnojenie(i, j, n) == 1)
- {
- ar[0][cn] = i;
- ar[1][cn] = j;
- cn++;
- }
- }
- }
- for (unsigned i = 0; i<2; i++)
- {
- for (unsigned j = 0; j<cn; j++)
- {
- std::cout << " " << ar[i][j];
- }
- std::cout << std::endl;
- }
- std::cout << std::endl;
- reciprochen(ar, cn);
- for (unsigned i = 0; i < 2; i++) {
- delete[] ar[i];
- }
- delete[] ar;
- ar = NULL;
- return 0;
- }
- int stepenuvane(unsigned n, int a, int m) {
- int c = a, cnt = 2;
- do {
- cnt++;
- c = umnojenie(a, c, n);
- } while (umnojenie(a, c, n) != 1);
- return umnojenie(a, cnt, n);
- }
- int primitiven(int a, unsigned n) {
- int *ar = NULL, b;
- ar = new int[n];
- bool c = true;
- for (unsigned i = 1; i < n; i++) {
- b = pow(a, i);
- ar[i] = b % n;
- }
- for (unsigned i = 1; i < n; i++) {
- for (unsigned j = i + 1; j < n; j++) {
- if (ar[i] == ar[j]) {
- c = false;
- break;
- }
- }
- }
- if (c == true) {
- std::cout << "Chisloto e primitiven koren" << std::endl;
- }
- if (c == false) {
- std::cout << "Chisloto NE e primitiven koren" << std::endl;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment