summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2009-05-19 22:24:17 -0500
committerJesse Luehrs <doy@tozt.net>2009-05-19 22:24:17 -0500
commita610f19b4deee966456845d83795a6f832c5e7a4 (patch)
tree479cde603c48283c1a69fecf8761e50253c90072
parent7bb644c6e7da16f16ed8337dcf3d6341ac9d2ec1 (diff)
downloadprojecteuler-a610f19b4deee966456845d83795a6f832c5e7a4.tar.gz
projecteuler-a610f19b4deee966456845d83795a6f832c5e7a4.zip
46 solution
-rwxr-xr-x046.pl19
1 files changed, 19 insertions, 0 deletions
diff --git a/046.pl b/046.pl
new file mode 100755
index 0000000..e424abc
--- /dev/null
+++ b/046.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Math::Prime::XS qw/sieve_primes/;
+use integer;
+
+my @primes = sieve_primes(1e6);
+my %primes = map { $_, 1 } @primes;
+
+N: for my $n (2..100000) {
+ my $oddn = $n * 2 - 1;
+ next if exists $primes{$oddn};
+ for my $m (1..sqrt($oddn)) {
+ my $possible_prime = $oddn - 2 * $m**2;
+ next N if $primes{$possible_prime};
+ }
+ print "$oddn\n";
+ last;
+}