diff options
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"; |