1234567891011121314151617181920 |
- #!/usr/bin/ruby
- # Daniel "Trizen" Șuteu
- # License: GPLv3
- # Date: 21 February 2018
- # https://github.com/trizen
- # https://projecteuler.net/problem=479
- # Runtime: 19.709s (previously: 36.014s)
- var n = 1e6
- var m = 1000000007
- say sum(1..n, {|k|
- with (mulmod(k, k, m) - 1) {|p|
- divmod(p * ((-1)**n * powmod(p, n, m) - 1), p+1, m)
- }
- })%m
|