Advertisement
Yanislav29

Untitled

Jan 2nd, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. void fastPow_1variant(int num,int MOD,int m) {//изпълнение на задача 9
  2.  
  3. cout << "Variant 1:" << endl;
  4. int c = 0;//променливав която ще извършваме степенуване на всяка итерация на цикъла
  5. int k = 0;
  6. int b = num;//запазваме стойноста на въведеното число
  7. int tmp = 0;//тук ще пазим стойноста на m % k
  8. for (int i = 2;i < MOD;i++) {
  9.  
  10. if (i & 1)
  11.  
  12.  
  13. b = ((long long)b * b) % MOD;
  14. c = pow(num, i);
  15. cout << num << "^" << i << " =" << num << "*" << num << "^" << i - 1 << "mod(" << MOD << ")" << c % MOD << endl;
  16.  
  17. if (c % MOD == 1) {
  18. k = i;
  19. tmp = m % k;
  20. int result = pow(num, tmp);
  21. cout << "The smallest integer,which a^k mod(n) = 1 ,k = " << " " << i << endl;
  22. cout << num << "^" << m << " = " << MOD << " " << num << "^" << m << "mod(" << k << ") =" << MOD << " " << num << "^" << tmp << "=" << MOD << " "<< result % MOD;
  23. break;
  24. }
  25. }
  26. // cout << num << "^" << m << " = " << MOD;
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement