027 Quadratic primes.sf 630 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/usr/bin/ruby
  2. # Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Date: 27 January 2017
  5. # https://github.com/trizen
  6. # https://projecteuler.net/problem=27
  7. # Runtime: 4.024s
  8. var limit = 1000
  9. var m = 0
  10. var p = 0
  11. var q = 0
  12. var primes = limit.primes
  13. for a in primes, b in primes {
  14. with (^Inf -> first_by {|k| !is_prime(k*k + a*k + b) }) { |n|
  15. if (n > m) {
  16. (m, p, q) = (n, a, b)
  17. }
  18. }
  19. with (^Inf -> first_by {|k| !is_prime(k*k - a*k + b) }) { |n|
  20. if (n > m) {
  21. (m, p, q) = (n, -a, b)
  22. }
  23. }
  24. }
  25. say "n^2 + #{p}*n + #{q} for 0 <= n < #{m}"
  26. say "#{p} * #{q} = #{p * q}"