diff options
author | Guillermo Ramos | 2019-04-23 17:56:30 +0200 |
---|---|---|
committer | Guillermo Ramos | 2019-04-23 17:56:30 +0200 |
commit | 12c121768ba586e38bf774b108e6644c5f4ab33b (patch) | |
tree | 11a1f7ebed369d18b674c7a30e80bb2730eaf06a /perl/p3.pl | |
parent | 74b98d3b76ff216235cd6e2e649cec61ffde3ee0 (diff) | |
download | euler-12c121768ba586e38bf774b108e6644c5f4ab33b.tar.gz |
[perl] p3
Diffstat (limited to 'perl/p3.pl')
-rw-r--r-- | perl/p3.pl | 29 |
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"; |