fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. typedef unsigned long long int ulint;
  5.  
  6. ulint abModN(ulint a, ulint b, ulint n) {
  7. ulint w=0;
  8. ulint m=1;
  9.  
  10. while(m) {
  11. if (b&m)
  12. w = (w+a)%n;
  13. a = (a<<1)%n;
  14. m<<=1;
  15. }
  16. return w;
  17. }
  18.  
  19. int main() {
  20. ulint a, b, n;
  21.  
  22. while (cin >> a >> b >> n) {
  23. cout << "("<< a << ", " << b << ", " << n << ") = " << abModN(a, b, n) << endl;
  24. }
  25. return 0;
  26. }
Success #stdin #stdout 0s 3300KB
stdin
5 9 13
123849273917289561 123592379052017592 1000000000000000003
stdout
(5, 9, 13) = 6
(123849273917289561, 123592379052017592, 1000000000000000003) = 30060949908048691