diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-11-15 08:09:30 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-15 08:09:30 +0000 |
| commit | 0be29e82f4704d6ea6a7eb287e4f09a99cedde07 (patch) | |
| tree | f8082c0c38d7e77d0f030f14ec7ad2b177fa08a2 | |
| parent | c0a77fed469750f4d61fc8217dba94dea7f608e2 (diff) | |
| parent | 8d11b718c3dbb3a0e3924fa10e95a2acb8fe0418 (diff) | |
| download | perlweeklychallenge-club-0be29e82f4704d6ea6a7eb287e4f09a99cedde07.tar.gz perlweeklychallenge-club-0be29e82f4704d6ea6a7eb287e4f09a99cedde07.tar.bz2 perlweeklychallenge-club-0be29e82f4704d6ea6a7eb287e4f09a99cedde07.zip | |
Merge pull request #7090 from wlmb/challenges
Solve PWC191
| -rw-r--r-- | challenge-191/wlmb/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-191/wlmb/perl/ch-1.pl | 16 | ||||
| -rwxr-xr-x | challenge-191/wlmb/perl/ch-2.pl | 26 |
3 files changed, 43 insertions, 0 deletions
diff --git a/challenge-191/wlmb/blog.txt b/challenge-191/wlmb/blog.txt new file mode 100644 index 0000000000..ecb82729d7 --- /dev/null +++ b/challenge-191/wlmb/blog.txt @@ -0,0 +1 @@ +https://wlmb.github.io/2022/11/14/PWC191/ diff --git a/challenge-191/wlmb/perl/ch-1.pl b/challenge-191/wlmb/perl/ch-1.pl new file mode 100755 index 0000000000..e2167c6146 --- /dev/null +++ b/challenge-191/wlmb/perl/ch-1.pl @@ -0,0 +1,16 @@ +#!/usr/bin/env perl +# Perl weekly challenge 191 +# Task 1: Twice Largest +# +# See https://wlmb.github.io/2022/11/15/PWC191/#task-1-twice-largest +use v5.36; +use List::Util qw(all); +use Scalar::Util qw(looks_like_number); +die <<"EOF" unless @ARGV; +Usage: $0 N1 [N2...] +to test if the largest among Ni is at least as large as twice +any of the others. +EOF +die "Only numbers allowed" unless all {looks_like_number($_)} @ARGV; +my @x=sort{$b <=> $a} @ARGV; +say "@ARGV -> ", $x[0] >= 2*$x[1]?1:-1 diff --git a/challenge-191/wlmb/perl/ch-2.pl b/challenge-191/wlmb/perl/ch-2.pl new file mode 100755 index 0000000000..613914ccf4 --- /dev/null +++ b/challenge-191/wlmb/perl/ch-2.pl @@ -0,0 +1,26 @@ +#!/usr/bin/env perl +# Perl weekly challenge 191 +# Task 2: Cute List +# +# See https://wlmb.github.io/2022/11/15/PWC191/#task-2-cute-list +use v5.36; +use Algorithm::Combinatorics qw(permutations); +use List::Util qw(all); + +sub cute($o){ # check @$o is a cute sequence + my @o=@$o; + return all {$o[$_-1]%$_==0||$_%$o[$_-1]==0} 1..@o; +} + +die << "EOF" unless @ARGV; +Usage: $0 N1 [N2...] +to count the cute orderings of 1..Ni +EOF +die "Only numbers in the range 1..15 are allowed" unless all {1<=$_<=15} @ARGV; +for(@ARGV){ + my $iter=permutations[1..$_]; + my $count=0; + my $o; + cute($o) && ++$count while $o=$iter->next; + say "$_ -> $count"; +} |
