12345678910111213141516171819202122232425262728293031323334353637 |
- #!/usr/bin/ruby
- # Daniel "Trizen" Șuteu
- # License: GPLv3
- # Date: 27 January 2017
- # https://github.com/trizen
- # https://projecteuler.net/problem=27
- # Runtime: 4.024s
- var limit = 1000
- var m = 0
- var p = 0
- var q = 0
- var primes = limit.primes
- for a in primes, b in primes {
- with (^Inf -> first_by {|k| !is_prime(k*k + a*k + b) }) { |n|
- if (n > m) {
- (m, p, q) = (n, a, b)
- }
- }
- with (^Inf -> first_by {|k| !is_prime(k*k - a*k + b) }) { |n|
- if (n > m) {
- (m, p, q) = (n, -a, b)
- }
- }
- }
- say "n^2 + #{p}*n + #{q} for 0 <= n < #{m}"
- say "#{p} * #{q} = #{p * q}"
|