288 An enormous factorial.jl 597 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/julia
  2. # Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Date: 15 September 2016
  5. # Website: https://github.com/trizen
  6. # https://projecteuler.net/problem=288
  7. # Runtime: 0.928s
  8. const p = 61
  9. const q = 10^7
  10. const k = 10
  11. const mod = 61^k
  12. function fpower(n)
  13. n == 0 ? 0 : powermod(p, n-1, mod) + fpower(n-1)
  14. end
  15. function solve()
  16. s = 290797
  17. sum = 0
  18. pow = 0
  19. for n in 0:q
  20. t = s % p
  21. s = powermod(s, 2, 50515093)
  22. if n <= k
  23. pow = fpower(n)
  24. end
  25. sum += pow * t
  26. sum %= mod
  27. end
  28. return sum
  29. end
  30. println(solve())