summaryrefslogtreecommitdiffstats
path: root/027.pl
blob: b1f8808cb86ebaef7f5f3a906310e3e38cecdc2a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/perl
use strict;
use warnings;
use Math::Prime::XS qw/sieve_primes/;

my @primes = sieve_primes(1e6);
my %primes = map { $_, 1 } @primes;

sub is_prime {
    my ($n) = @_;
    if ($n <= 1e6) {
        return exists $primes{$n};
    }
    return Math::Prime::XS::is_prime($n);
}

my $max = 0;
my $max_a = 0;
my $max_b = 0;
for my $a (-1000..1000) {
    for my $b (-1000..1000) {
        for my $n (0..1e6) {
            if (!is_prime($n**2+$a*$n+$b)) {
                if ($n - 1 > $max) {
                    $max = $n - 1;
                    $max_a = $a;
                    $max_b = $b;
                }
                last;
            }
        }
    }
}
print "$max $max_a $max_b ", $max_a * $max_b, "\n";