027 Quadratic primes.pl 769 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/perl
  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: 0.063s
  8. use 5.010;
  9. use strict;
  10. use warnings;
  11. use ntheory qw(is_prime forprimes);
  12. my $limit = 1000;
  13. my $max = 0;
  14. my $p = 0;
  15. my $q = 0;
  16. forprimes {
  17. my $a = $_;
  18. forprimes {
  19. my $b = $_;
  20. my $n;
  21. for ($n = 0 ; is_prime($n**2 + $a * $n + $b) ; ++$n) { }
  22. if ($n > $max) {
  23. ($max, $p, $q) = ($n, $a, $b);
  24. }
  25. for ($n = 0 ; is_prime($n**2 - $a * $n + $b) ; ++$n) { }
  26. if ($n > $max) {
  27. ($max, $p, $q) = ($n, -$a, $b);
  28. }
  29. } $limit;
  30. } $limit;
  31. say "n^2 + $p*n + $q for 0 <= n < $max";
  32. say "$p * $q = ", $p * $q;