aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-05-10 07:52:29 +0100
committerGitHub <noreply@github.com>2020-05-10 07:52:29 +0100
commit6dd41d520e7871f5340bdf6b982bec357065e790 (patch)
treecf25f53f0ff2bd070ac6d9f695d7e0c01ccb3055
parentc193190e04829807edb9d1f2dec7be9c9a554b80 (diff)
parent28933d6f1d7f46305938cb3eaf2cecbeb3c46b4d (diff)
downloadperlweeklychallenge-club-6dd41d520e7871f5340bdf6b982bec357065e790.tar.gz
perlweeklychallenge-club-6dd41d520e7871f5340bdf6b982bec357065e790.tar.bz2
perlweeklychallenge-club-6dd41d520e7871f5340bdf6b982bec357065e790.zip
Merge pull request #1690 from maxkossek/new-branch
Add challenge 1, 5, 7, and 8 solutions for Max Kossek
-rw-r--r--challenge-001/max-kossek/README1
-rw-r--r--challenge-001/max-kossek/perl/ch-1.pl9
-rw-r--r--challenge-001/max-kossek/perl/ch-2.pl8
-rw-r--r--challenge-005/max-kossek/README1
-rw-r--r--challenge-005/max-kossek/perl/ch-1.pl26
-rw-r--r--challenge-007/max-kossek/README1
-rw-r--r--challenge-007/max-kossek/perl/ch-1.pl7
-rw-r--r--challenge-008/max-kossek/README1
-rw-r--r--challenge-008/max-kossek/perl/ch-1.pl39
-rw-r--r--challenge-008/max-kossek/perl/ch-2.pl27
10 files changed, 120 insertions, 0 deletions
diff --git a/challenge-001/max-kossek/README b/challenge-001/max-kossek/README
new file mode 100644
index 0000000000..fae891e43d
--- /dev/null
+++ b/challenge-001/max-kossek/README
@@ -0,0 +1 @@
+Solution by Max Kossek
diff --git a/challenge-001/max-kossek/perl/ch-1.pl b/challenge-001/max-kossek/perl/ch-1.pl
new file mode 100644
index 0000000000..0214eb5e0b
--- /dev/null
+++ b/challenge-001/max-kossek/perl/ch-1.pl
@@ -0,0 +1,9 @@
+#!/usr/bin/perl;
+use strict;
+use warnings;
+
+my $input_string = 'Perl Weekly Challenge';
+my $count_e = $input_string =~ s/e/E/g;
+print "$input_string - Number of e's replaced: $count_e\n";
+
+__END__
diff --git a/challenge-001/max-kossek/perl/ch-2.pl b/challenge-001/max-kossek/perl/ch-2.pl
new file mode 100644
index 0000000000..0ba1607c5d
--- /dev/null
+++ b/challenge-001/max-kossek/perl/ch-2.pl
@@ -0,0 +1,8 @@
+#!/usr/bin/perl;
+use strict;
+use warnings;
+
+print grep { $_ % 15 == 0 ? $_ = 'fizzbuzz' : $_ % 5 == 0
+ ? $_ = 'fizz' : $_ % 3 == 0 ? $_ = 'buzz' : $_ } 1..20;
+
+__END__
diff --git a/challenge-005/max-kossek/README b/challenge-005/max-kossek/README
new file mode 100644
index 0000000000..fae891e43d
--- /dev/null
+++ b/challenge-005/max-kossek/README
@@ -0,0 +1 @@
+Solution by Max Kossek
diff --git a/challenge-005/max-kossek/perl/ch-1.pl b/challenge-005/max-kossek/perl/ch-1.pl
new file mode 100644
index 0000000000..75d5cf9de3
--- /dev/null
+++ b/challenge-005/max-kossek/perl/ch-1.pl
@@ -0,0 +1,26 @@
+#!/usr/bin/perl;
+use strict;
+use warnings;
+
+sub is_anagram {
+ my ($word1, $word2) = @_;
+
+ my $sorted1 = join q{}, sort split(q{}, lc $word1);
+ my $sorted2 = join q{}, sort split(q{}, lc $word2);
+
+ return $sorted1 eq $sorted2;
+}
+
+print "Enter a word to find anagrams for: ";
+chomp(my $compare_word = <>);
+
+print "Enter a word: ";
+while (my $user_input = <>) {
+ chomp $user_input;
+ if (is_anagram($compare_word, $user_input)) {
+ print "$user_input and $compare_word are anagrams.\n";
+ }
+ print "Enter a word: ";
+}
+
+__END__
diff --git a/challenge-007/max-kossek/README b/challenge-007/max-kossek/README
new file mode 100644
index 0000000000..fae891e43d
--- /dev/null
+++ b/challenge-007/max-kossek/README
@@ -0,0 +1 @@
+Solution by Max Kossek
diff --git a/challenge-007/max-kossek/perl/ch-1.pl b/challenge-007/max-kossek/perl/ch-1.pl
new file mode 100644
index 0000000000..9856912f75
--- /dev/null
+++ b/challenge-007/max-kossek/perl/ch-1.pl
@@ -0,0 +1,7 @@
+#!/usr/bin/perl;
+use strict;
+use warnings;
+
+print join "\n", grep { $_ % ((($_ % 10) / 1) + ($_ / 10)) == 0 } 1..50;
+
+__END__
diff --git a/challenge-008/max-kossek/README b/challenge-008/max-kossek/README
new file mode 100644
index 0000000000..fae891e43d
--- /dev/null
+++ b/challenge-008/max-kossek/README
@@ -0,0 +1 @@
+Solution by Max Kossek
diff --git a/challenge-008/max-kossek/perl/ch-1.pl b/challenge-008/max-kossek/perl/ch-1.pl
new file mode 100644
index 0000000000..13403f1068
--- /dev/null
+++ b/challenge-008/max-kossek/perl/ch-1.pl
@@ -0,0 +1,39 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+sub is_prime {
+ my $num = shift;
+ return $num > 1 if $num <= 3;
+ return if $num % 2 == 0 || $num % 3 == 0;
+
+ my $ctr = 5;
+ while ($ctr * $ctr <= $num) {
+ return if $num % $ctr == 0
+ || $num % ($ctr + 2) == 0;
+ $ctr += 6;
+ }
+
+ return $num;
+}
+
+sub get_perfect_numbers {
+ my $to_get = shift;
+ $to_get = 5 if !defined $to_get;
+
+ my @perfect_numbers = ();
+ my ($got_so_far, $ctr) = 0;
+ while ($got_so_far < $to_get) {
+ $ctr++;
+ if (is_prime(2**$ctr - 1)) {
+ push @perfect_numbers, 2**($ctr-1) * (2**$ctr - 1);
+ $got_so_far++;
+ }
+ }
+
+ return @perfect_numbers;
+}
+
+print join ",", get_perfect_numbers(5);
+
+__END__
diff --git a/challenge-008/max-kossek/perl/ch-2.pl b/challenge-008/max-kossek/perl/ch-2.pl
new file mode 100644
index 0000000000..480fb9bdc0
--- /dev/null
+++ b/challenge-008/max-kossek/perl/ch-2.pl
@@ -0,0 +1,27 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+sub center {
+ my @strings = @_;
+
+ my $max_len = 0;
+ foreach my $str (@strings) {
+ if (length $str > $max_len) {
+ $max_len = length $str;
+ }
+ }
+ for my $i (0..$#strings) {
+ my $space_len = ($max_len - length $strings[$i]) / 2;
+ $strings[$i] =
+ q{ } x $space_len . $strings[$i] . q{ } x $space_len;
+ }
+
+ return @strings;
+}
+
+
+print join "\n", center("This", "is", "a test of the", "center function");
+
+
+__END__