Пожалуйста, подпишитесь на официальный канал Codeforces в Telegram по ссылке https://t.me/codeforces_official. ×

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

Автор zorro_, 8 лет назад, По-английски

Easy Money problem from HackerEarth Collegiate Cup Second Elimination round simplified to compute (2^(2^n))-1 with modulus 1e9+7.

To compute (2^(2^n))%mod, where mod = 1e9+7 and 1≤ n ≤10^18
author solution:
ans = power(2, n, mod -1)
ans = power(2, ans, mod)

Can someone please explain why mod -1 is taken ?

  • Проголосовать: нравится
  • +21
  • Проголосовать: не нравится

»
8 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

This is because by Fermat's Little Theorem, ap - 1 ≡ 1(modp). Thus, we reduce the exponent modulo p - 1 = 109 + 6.

»
8 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится

I added a detailed explanation describing how to do it in the UPDATE section of the editorial, please take a look: https://www.hackerearth.com/hackerearth-collegiate-cup-second-elimination/algorithm/easy-money/editorial/