Блог пользователя Tintin

Автор Tintin, 15 лет назад, По-английски
How I do big number (>10^20) mod by a number,
thanks
  • Проголосовать: нравится
  • +9
  • Проголосовать: не нравится

15 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +3 Проголосовать: не нравится


15 лет назад, скрыть # |
← Rev. 3  
Проголосовать: нравится +3 Проголосовать: не нравится


15 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
In which form do you have this number? Is there any limitations on modulo?

15 лет назад, скрыть # |
 
Проголосовать: нравится +28 Проголосовать: не нравится
Just read the number digit-by-digit and maintain the remainder.

For example,
1 mod 7 = 1
12 mod 7 = (1 * 10 + 2) mod 7 = 5
123 mod 7 = (5 * 10 + 3) mod 7 = 4
1234 mod 7 = (4 * 10 + 4) mod 7 = 2
etc.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
If the number is given in the form baseexponent then you should consider two ways: Modular exponentiation, which works in O(exponent) or Exponentiation by squaring (modified to mantain the result mod M), which works in O(log(exponent)) so it is very fast also for large exponents