- #!/usr/bin/perl
-
- use strict;
- use warnings;
-
-
-
- sub sum {
- my ($sum) = 0;
- $sum += $_ for @_;
- return $sum;
- }
-
-
-
- open PRIMES, "primes_under_1000000.TXT" or die("PRIMES NOT FOUND.\n");
-
-
-
- my ($k, $sum, $max_length);
- my (%primes) = map { chomp; int $_, $k++ } <PRIMES>;
- my (@primes_list) = sort { $a <=> $b } keys %primes;
-
-
-
- $sum = 0;
- while ($sum < 10**6) {
- $sum += $primes_list[$max_length++];
- }
-
-
-
- for my $p (reverse sort {$a <=> $b} keys %primes) {
- for my $length (reverse 0..$max_length) {
-
-
-
-
-
- for my $low (0..$max_length-$length) {
-
-
- $sum = sum @primes_list[$low..$low+$length];
-
-
-
-
-
- if (defined $primes{$sum}) {
- print "$sum";
- goto LEAVE;
- }
- }
- }
-
- }
-
- LEAVE: close PRIMES;