diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-05-10 07:52:29 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-10 07:52:29 +0100 |
| commit | 6dd41d520e7871f5340bdf6b982bec357065e790 (patch) | |
| tree | cf25f53f0ff2bd070ac6d9f695d7e0c01ccb3055 | |
| parent | c193190e04829807edb9d1f2dec7be9c9a554b80 (diff) | |
| parent | 28933d6f1d7f46305938cb3eaf2cecbeb3c46b4d (diff) | |
| download | perlweeklychallenge-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/README | 1 | ||||
| -rw-r--r-- | challenge-001/max-kossek/perl/ch-1.pl | 9 | ||||
| -rw-r--r-- | challenge-001/max-kossek/perl/ch-2.pl | 8 | ||||
| -rw-r--r-- | challenge-005/max-kossek/README | 1 | ||||
| -rw-r--r-- | challenge-005/max-kossek/perl/ch-1.pl | 26 | ||||
| -rw-r--r-- | challenge-007/max-kossek/README | 1 | ||||
| -rw-r--r-- | challenge-007/max-kossek/perl/ch-1.pl | 7 | ||||
| -rw-r--r-- | challenge-008/max-kossek/README | 1 | ||||
| -rw-r--r-- | challenge-008/max-kossek/perl/ch-1.pl | 39 | ||||
| -rw-r--r-- | challenge-008/max-kossek/perl/ch-2.pl | 27 |
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__ |
