Advertisement
Guest User

xorfire

a guest
Feb 25th, 2015
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.49 KB | None | 0 0
  1. def go(n, a, d, r, mod):
  2.     mod *= (1 - r) * (1 - r)
  3.     ret = (1 - r % mod) * ((a % mod - (a % mod + n % mod * d % mod) % mod * pow(r % mod, n + 1, mod) % mod) % mod) % mod
  4.     ret += d % mod * r % mod * (1 - pow(r, n, mod)) % mod;
  5.     if (ret > mod): ret -= mod
  6.     ret //= ((1 - r) * (1 - r))
  7.     mod //= (1 - r) * (1 - r)
  8.     if (ret >= mod): print("NOOOO")
  9.     return ret
  10.  
  11. print(go(10**9+69 , 105253, 330787, 179948, 10**9 + 7))
  12. print(go(10 ** 18, 705000020383, 100000023986, 3746166374021812690, 2717401869))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement