fork download
  1. #include <iostream>
  2. #include <cstdint>
  3. #include <cstddef>
  4. using namespace std;
  5.  
  6. template <typename T>
  7. T mod(T val, T m)
  8. {
  9. T res = val % m;
  10. if (res < 0)
  11. res = res + m;
  12. return res;
  13. }
  14.  
  15.  
  16. int main()
  17. {
  18. const size_t SIZE = 9;
  19. int_fast64_t val[SIZE] = {255, 256, 257, 0, -257, -256, -255, -1, -127863182361};
  20. int_fast64_t m[SIZE] = {256, 256, 256, 256, 256, 256, 256, 256, 156};
  21.  
  22. for (size_t i = 0; i < SIZE; ++i)
  23. cout << val[i] << " mod " << m[i] << " = " << mod(val[i], m[i]) << endl;
  24.  
  25. return 0;
  26. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
255 mod 256 = 255
256 mod 256 = 0
257 mod 256 = 1
0 mod 256 = 0
-257 mod 256 = 255
-256 mod 256 = 0
-255 mod 256 = 1
-1 mod 256 = 255
-127863182361 mod 156 = 99