summaryrefslogtreecommitdiffstats
path: root/044.pl
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2009-05-19 22:17:11 -0500
committerJesse Luehrs <doy@tozt.net>2009-05-19 22:17:11 -0500
commit7bb644c6e7da16f16ed8337dcf3d6341ac9d2ec1 (patch)
tree0698cffc4f246078ab6d026ff02122e79ad32c1b /044.pl
parent279975c1fd05b2455b017a49521e34c64623b05e (diff)
downloadprojecteuler-7bb644c6e7da16f16ed8337dcf3d6341ac9d2ec1.tar.gz
projecteuler-7bb644c6e7da16f16ed8337dcf3d6341ac9d2ec1.zip
44 solution
Diffstat (limited to '044.pl')
-rwxr-xr-x044.pl24
1 files changed, 24 insertions, 0 deletions
diff --git a/044.pl b/044.pl
new file mode 100755
index 0000000..54f9ce8
--- /dev/null
+++ b/044.pl
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use integer;
+
+my %p;
+
+for my $n (1..10000) {
+ $p{$n} = $n * (3 * $n - 1) / 2;
+}
+my %rp = reverse %p;
+
+my $min = 1e9;
+N: for my $n (1..10000) {
+ for my $m ($n..10000) {
+ my $sum = $p{$m} + $p{$n};
+ my $diff = $p{$m} - $p{$n};
+ next N if $diff > $min;
+ if (exists $rp{$sum} && exists $rp{$diff}) {
+ $min = $diff if $diff < $min;
+ }
+ }
+}
+print "$min\n";