fork download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3.  
  4. int square_and_multiply(unsigned long long a, unsigned long long k, unsigned long long n)
  5. {
  6. int result = 1;
  7. while (k > 0)
  8. {
  9. if (k % 2 == 1)
  10. {
  11. result = (result * a) % n;
  12. }
  13. k /= 2;
  14. a = (a * a) % n;
  15. }
  16. return result;
  17. }
  18.  
  19. int main()
  20. {
  21. unsigned long long a, k, n;
  22. printf("Nhap gia tri a: ");
  23. scanf("%llu", &a);
  24. printf("Nhap gia tri k: ");
  25. scanf("%llu", &k);
  26. printf("Nhap gia tri n: ");
  27. scanf("%llu", &n);
  28.  
  29. unsigned long long result = square_and_multiply(a, k, n);
  30. printf("a^k mod n = %llu\n", result);
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0.01s 5464KB
stdin
Standard input is empty
stdout
Nhap gia tri a: Nhap gia tri k: Nhap gia tri n: a^k mod n = 513374528