Блог пользователя tik-tok

Автор tik-tok, история, 3 года назад, По-английски

Hi everyone,

(131015-1) / (13-1)

I want to calculate the previous value modulo 36 in an efficient way, how can I do that?

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

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

Can you provide a link to the problem?

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Sorry it is not a CP problem, I know how to calculate the inverse modulo but in this case the denominator (13-1 = 12) and the modulo 36 are not coprime, so I am not sure how to do the calculation in a fast way and without an overflow happening

»
3 года назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Thanks for the reply, but my problem is in the division by 12, will this solve my problem?

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

$$$(13^{10^{15}}-1) = (13-1)(13^{10^{15}-1}+13^{10^{15}-2}+...+13^1+1)$$$

$$$(13^{10^{15}}-1)/(13-1)= (13^{10^{15}-1}+13^{10^{15}-2}+...+13^1+1)$$$

$$$13^n \mod 36 = \begin{cases} 1(n \equiv 0 \mod 3) \\ 13(n \equiv 1 \mod 3) \\ 25(n \equiv 2 \mod 3) \end{cases}$$$

Then, you can just sum up this.

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится +2 Проголосовать: не нравится

    Thank you so much, this is an awesome solution. How to generalize it to find
    (an-1)/(a-1) mod m ?

    • »
      »
      »
      3 года назад, # ^ |
        Проголосовать: нравится +2 Проголосовать: не нравится

      If m is small(<=10^6), you can try above approach (to find a cycle of a^k mod m) in O(m). Or, using modular inverse if you can. I don't have further idea, sorry...