aboutsummaryrefslogtreecommitdiff
path: root/challenge-008
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2019-05-15 23:34:44 +0100
committerGitHub <noreply@github.com>2019-05-15 23:34:44 +0100
commit88a69ef5102fbe2e1c8c0a0448299910e299408e (patch)
treea561418a9c44a981fd13cbff3417f4b487df3949 /challenge-008
parentb74ba0dafba2945ad64ac15f794d37ada166ce5a (diff)
parent1ccef7a1fa9bba99a1c6a03408c4fe71234c87fe (diff)
downloadperlweeklychallenge-club-88a69ef5102fbe2e1c8c0a0448299910e299408e.tar.gz
perlweeklychallenge-club-88a69ef5102fbe2e1c8c0a0448299910e299408e.tar.bz2
perlweeklychallenge-club-88a69ef5102fbe2e1c8c0a0448299910e299408e.zip
Merge pull request #151 from yzhernand/ch-008-yozen
challenge-008 yozen-hernandez solution
Diffstat (limited to 'challenge-008')
-rw-r--r--challenge-008/yozen-hernandez/perl5/ch-1.pl30
-rw-r--r--challenge-008/yozen-hernandez/perl5/ch-2.pl19
2 files changed, 49 insertions, 0 deletions
diff --git a/challenge-008/yozen-hernandez/perl5/ch-1.pl b/challenge-008/yozen-hernandez/perl5/ch-1.pl
new file mode 100644
index 0000000000..cdbf8d01fb
--- /dev/null
+++ b/challenge-008/yozen-hernandez/perl5/ch-1.pl
@@ -0,0 +1,30 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use constant mersenne_exps => (
+ 2, 3, 5, 7, 13, 17,
+ 19, 31, 61, 89, 107, 127,
+ 521, 607, 1279, 2203, 2281, 3217,
+ 4253, 4423, 9689, 9941, 11213, 19937,
+ 21701, 23209, 44497, 86243, 110503, 132049,
+ 216091, 756839, 859433, 1257787, 1398269, 2976221,
+ 3021377, 6972593, 13466917, 20996011, 24036583, 25964951,
+ 30402457, 32582657, 37156667, 42643801, 43112609
+);
+
+my $n = 5;
+print join( ", ", perfect_nums($n) ), "\n";
+
+sub perfect_nums {
+ my $n = shift;
+ my @nums;
+ for my $i ( 0 .. $n-1 ) {
+ my $exp = (mersenne_exps)[$i];
+
+ push( @nums, 2**($exp-1)*((2**$exp) - 1) );
+ }
+
+ return @nums;
+}
diff --git a/challenge-008/yozen-hernandez/perl5/ch-2.pl b/challenge-008/yozen-hernandez/perl5/ch-2.pl
new file mode 100644
index 0000000000..f3a821295c
--- /dev/null
+++ b/challenge-008/yozen-hernandez/perl5/ch-2.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use feature 'say';
+use List::Util qw(max);
+
+my @centered = center("This", "is", "a test of the", "center function");;
+
+say join( "\n", @centered );
+
+sub center {
+ my $longest_len = max( map { length $_ } @_ );
+
+ map {
+ my $pad = ( $longest_len - length($_) + 1 ) / 2;
+ ( " " x $pad ) . $_;
+ } @_;
+}