Pythonの長整数が意外と速いので、高々10^100程度の値を1000回足すなら、毎回剰余取ったりせずにそのまま計算した方が速い python

In [27]: %%timeit
    ...: x = int("7" * 100)
    ...: for i in range(1000):
    ...:     x += x
    ...: 
71.3 µs ± 624 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)

In [28]: %%timeit
    ...: x = int("7" * 100)
    ...: for i in range(1000):
    ...:     x += x
    ...:     x %= 1000000007
    ...: 
104 µs ± 890 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
  • ABC177では、毎回剰余を取らずに計算して最後に剰余を取るコードがPyPy3提出の中での速度一位だった
    • この問題は高々10^9を10^6回加算乗算して最大でも10^30程度に収まるものだった