1234567891011121314151617181920212223242526 |
- #!/usr/bin/ruby
- # Daniel "Trizen" Șuteu
- # Date: 09 October 2017
- # https://github.com/trizen
- # https://projecteuler.net/problem=7
- # Runtime: 0.757s (previously: 1.226s)
- var n = 10_001
- var upper = int(n*(n.log + n.log.log))
- var sieve = [true, true]
- for i in (2..upper.isqrt) {
- if (!sieve[i]) {
- for j in (i.sqr .. upper -> by(i)) {
- sieve[j] = true
- }
- }
- }
- sieve.map_kv! {|k,v| v ? () : k }
- say sieve[n-1]
|