summaryrefslogtreecommitdiff
path: root/perl
diff options
context:
space:
mode:
authorGuillermo Ramos2019-04-23 17:56:30 +0200
committerGuillermo Ramos2019-04-23 17:56:30 +0200
commit12c121768ba586e38bf774b108e6644c5f4ab33b (patch)
tree11a1f7ebed369d18b674c7a30e80bb2730eaf06a /perl
parent74b98d3b76ff216235cd6e2e649cec61ffde3ee0 (diff)
downloadeuler-12c121768ba586e38bf774b108e6644c5f4ab33b.tar.gz
[perl] p3
Diffstat (limited to 'perl')
-rw-r--r--perl/p3.pl29
1 files changed, 29 insertions, 0 deletions
diff --git a/perl/p3.pl b/perl/p3.pl
new file mode 100644
index 0000000..3caebf2
--- /dev/null
+++ b/perl/p3.pl
@@ -0,0 +1,29 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use List::Util qw(all);
+
+my $n = 600851475143;
+
+# Functional
+
+# Imperative
+my @primes;
+my $last_factor;
+
+for my $i (2 .. $n) {
+ if ($i > $n) {
+ last;
+ }
+ if (all { $i % $_ != 0 } @primes) {
+ push(@primes, $i);
+ if ($n % $i== 0) {
+ $n = $n / $i;
+ $last_factor = $i;
+ redo;
+ }
+ }
+}
+print "$last_factor\n";