aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2020-11-17 14:40:24 +0800
committer冯昶 <fengchang@novel-supertv.com>2020-11-17 14:40:24 +0800
commitbaadeac3908d309acdc95cae65176602acadce4e (patch)
treed50160f5ed958beca7f1c1a7ab050c9299ea75e7
parent15f7046d6105e6f413a284592e1ce4d5cd27997e (diff)
parentdac3cad558402193f4acc14548c71fdb80a61bc2 (diff)
downloadperlweeklychallenge-club-baadeac3908d309acdc95cae65176602acadce4e.tar.gz
perlweeklychallenge-club-baadeac3908d309acdc95cae65176602acadce4e.tar.bz2
perlweeklychallenge-club-baadeac3908d309acdc95cae65176602acadce4e.zip
Merge remote-tracking branch 'upstream/master'
-rw-r--r--challenge-031/stuart-little/README1
-rwxr-xr-xchallenge-031/stuart-little/raku/ch-1.p611
-rwxr-xr-xchallenge-031/stuart-little/raku/ch-2.p611
-rw-r--r--challenge-032/stuart-little/README1
-rwxr-xr-xchallenge-032/stuart-little/raku/ch-1.p622
-rwxr-xr-xchallenge-032/stuart-little/raku/ch-2.p624
-rw-r--r--challenge-048/stuart-little/README1
-rwxr-xr-xchallenge-048/stuart-little/raku/ch-1.p615
-rwxr-xr-xchallenge-048/stuart-little/raku/ch-2.p66
-rw-r--r--challenge-054/stuart-little/README1
-rwxr-xr-xchallenge-054/stuart-little/raku/ch-1.p621
-rwxr-xr-xchallenge-054/stuart-little/raku/ch-2.p645
-rw-r--r--challenge-055/stuart-little/README1
-rwxr-xr-xchallenge-055/stuart-little/raku/ch-1.p610
-rwxr-xr-xchallenge-055/stuart-little/raku/ch-2.p613
-rw-r--r--challenge-064/stuart-little/README1
-rwxr-xr-xchallenge-064/stuart-little/raku/ch-1.p626
-rwxr-xr-xchallenge-064/stuart-little/raku/ch-2.p615
-rw-r--r--challenge-066/stuart-little/README1
-rwxr-xr-xchallenge-066/stuart-little/raku/ch-1.p628
-rwxr-xr-xchallenge-066/stuart-little/raku/ch-2.p610
-rw-r--r--challenge-067/stuart-little/README1
-rwxr-xr-xchallenge-067/stuart-little/raku/ch-1.p66
-rwxr-xr-xchallenge-067/stuart-little/raku/ch-2.p622
-rw-r--r--challenge-086/duncan-c-white/README95
-rwxr-xr-xchallenge-086/duncan-c-white/perl/ch-1.pl65
-rwxr-xr-xchallenge-086/duncan-c-white/perl/ch-2.pl500
-rw-r--r--challenge-086/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-086/jaldhar-h-vyas/perl/ch-1.pl42
-rwxr-xr-xchallenge-086/jaldhar-h-vyas/perl/ch-2.pl103
-rwxr-xr-xchallenge-086/jaldhar-h-vyas/raku/ch-1.p68
-rwxr-xr-xchallenge-086/jaldhar-h-vyas/raku/ch-2.p674
-rw-r--r--challenge-086/jaldhar-h-vyas/sudoku.txt9
-rw-r--r--challenge-086/lubos-kolouch/blog.txt1
-rw-r--r--challenge-086/pete-houston/perl/ch-1.pl28
-rw-r--r--challenge-086/pete-houston/perl/ch-2.pl95
-rw-r--r--challenge-087/ash/raku/ch-1.raku10
-rw-r--r--challenge-087/ash/raku/ch-1a.raku28
-rw-r--r--challenge-087/ash/raku/ch-2.raku45
-rw-r--r--challenge-087/mark-anderson/raku/ch-1.p643
-rwxr-xr-xchallenge-087/pkmnx/raku/ch-1.raku32
-rw-r--r--challenge-087/simon-proctor/raku/ch-1.raku13
-rw-r--r--challenge-087/simon-proctor/raku/ch-2.raku40
-rwxr-xr-xchallenge-087/stuart-little/raku/ch-1.p613
-rwxr-xr-xchallenge-087/stuart-little/raku/ch-2.p619
-rwxr-xr-x[-rw-r--r--]clean-up-dir.sh0
-rw-r--r--pwc108
-rw-r--r--stats/pwc-challenge-031.json519
-rw-r--r--stats/pwc-challenge-032.json265
-rw-r--r--stats/pwc-challenge-048.json301
-rw-r--r--stats/pwc-challenge-054.json489
-rw-r--r--stats/pwc-challenge-055.json497
-rw-r--r--stats/pwc-challenge-064.json455
-rw-r--r--stats/pwc-challenge-066.json223
-rw-r--r--stats/pwc-challenge-067.json463
-rw-r--r--stats/pwc-challenge-086.json702
-rw-r--r--stats/pwc-current.json606
-rw-r--r--stats/pwc-language-breakdown-summary.json60
-rw-r--r--stats/pwc-language-breakdown.json673
-rw-r--r--stats/pwc-leaders.json800
-rw-r--r--stats/pwc-summary-1-30.json102
-rw-r--r--stats/pwc-summary-121-150.json102
-rw-r--r--stats/pwc-summary-151-180.json104
-rw-r--r--stats/pwc-summary-181-210.json36
-rw-r--r--stats/pwc-summary-31-60.json106
-rw-r--r--stats/pwc-summary-61-90.json40
-rw-r--r--stats/pwc-summary-91-120.json102
-rw-r--r--stats/pwc-summary.json58
68 files changed, 5153 insertions, 3215 deletions
diff --git a/challenge-031/stuart-little/README b/challenge-031/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-031/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-031/stuart-little/raku/ch-1.p6 b/challenge-031/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..55288764c8
--- /dev/null
+++ b/challenge-031/stuart-little/raku/ch-1.p6
@@ -0,0 +1,11 @@
+#!/usr/bin/env perl6
+use v6;
+
+try {
+ say @*ARGS[0].Real/@*ARGS[1].Real;
+}
+
+($!) && say "Tried to divide by 0, eh?"
+
+# run as <script> <numerator> <denominator>
+
diff --git a/challenge-031/stuart-little/raku/ch-2.p6 b/challenge-031/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..350f958e82
--- /dev/null
+++ b/challenge-031/stuart-little/raku/ch-2.p6
@@ -0,0 +1,11 @@
+#!/usr/bin/env perl6
+use v6;
+
+my $name = "\$@*ARGS[0]";
+spurt 'MySymbols.pm6', "use v6; unit module MySymbols; my $name = \'@*ARGS[1]\'; say \"\\$name = $name\"";
+use lib '.';
+require MySymbols;
+unlink 'MySymbols.pm6';
+
+# run as <script> <variable name> <variable value>
+# ref: https://stackoverflow.com/questions/47332941/how-to-define-variable-names-dynamically-in-perl-6
diff --git a/challenge-032/stuart-little/README b/challenge-032/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-032/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-032/stuart-little/raku/ch-1.p6 b/challenge-032/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..9961930fcd
--- /dev/null
+++ b/challenge-032/stuart-little/raku/ch-1.p6
@@ -0,0 +1,22 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %*SUB-MAIN-OPTS=:named-anywhere,;
+sub MAIN(
+ Bool :c(:$csv),
+ *@FILES,
+ ) {
+
+ sub freq(@a,$cflag) {
+ my @bg=@a.Bag.sort({$^b.value leg $^a.value});
+ (! $cflag) ??
+ (@bg) !!
+ (@bg.map({ $_.key ~ ',' ~ $_.value }))
+ }
+
+ my @a=(! @FILES)
+ ?? ($*IN.lines)
+ !! (@FILES.map({ $_.IO.lines }).flat);
+ for freq(@a,$csv) {.say};
+}
+
diff --git a/challenge-032/stuart-little/raku/ch-2.p6 b/challenge-032/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..79743021c9
--- /dev/null
+++ b/challenge-032/stuart-little/raku/ch-2.p6
@@ -0,0 +1,24 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %*SUB-MAIN-OPTS=:named-anywhere,;
+sub MAIN(
+ Str :b(:$by) ="values",
+ *@ARGS,
+ ) {
+
+ sub chrt(%h, Str $by) {
+ %h.sort({ ($by eq "labels") && $_.key
+ || ($by eq "values") && -$_.value })
+ .map({ sprintf("%10s", $_.key) ~ ' | ' ~ '#' x $_.value })
+ }
+
+ my %h=@ARGS;
+ for chrt(%h.map({$_.key => $_.value.Int}).Hash,$by) {.say};
+}
+
+sub USAGE() {
+ print Q:c:to/EOH/;
+ Usage: <script> [hash passed as key value key value ..] [-b|--by=values(default)|labels]
+EOH
+}
diff --git a/challenge-048/stuart-little/README b/challenge-048/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-048/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-048/stuart-little/raku/ch-1.p6 b/challenge-048/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..25a4cd51bd
--- /dev/null
+++ b/challenge-048/stuart-little/raku/ch-1.p6
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub surv(@a where *.elems >= 1) {
+ given @a.elems {
+ when * <= 2 {@a[0]}
+ default {
+ (|@a[2..*], @a[0]).&surv
+ }
+ }
+}
+
+say (1..@*ARGS[0].Int).&surv.base(2)
+
+# run as <script> <number of players>
diff --git a/challenge-048/stuart-little/raku/ch-2.p6 b/challenge-048/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..d863cafea0
--- /dev/null
+++ b/challenge-048/stuart-little/raku/ch-2.p6
@@ -0,0 +1,6 @@
+#!/usr/bin/env perl6
+use v6;
+
+say (Date.new(2000, 1, 1)..Date.new(2200, 12, 31)).grep({ $_.day == 2 || $_.day == 12 }).grep({ ($_.year %% 10) && (! $_.year %% 100) || ($_.year % 100 == (1,11,21).any ) }).map({ sprintf("%02d", $_.month) ~ sprintf("%02d", $_.day) ~ $_.year }).grep({ $_ eq $_.flip })
+
+# run as <script>
diff --git a/challenge-054/stuart-little/README b/challenge-054/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-054/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-054/stuart-little/raku/ch-1.p6 b/challenge-054/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..3530a98037
--- /dev/null
+++ b/challenge-054/stuart-little/raku/ch-1.p6
@@ -0,0 +1,21 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub rk_perm(@a, $k) {
+ given my ($ix,$fact) = ((1..@a.elems) Z [\*](1..@a.elems)).first({ $_[1] < $k }, :end) {
+ when ! *.[0].defined { @a }
+ when *.[0] == @a.elems { @a.reverse }
+ when *.[0] < @a.elems-1 {
+ (|@a[^(@a.elems-$ix-1)], |rk_perm(@a[(@a.elems-$ix-1)..*], $k))
+ }
+ default {
+ my $init_ix=ceiling($k/$fact)-1;
+ my @rest=(@a.keys (-) $init_ix).keys.sort;
+ (@a[$init_ix], |rk_perm(@a[@rest], $k-($fact * (ceiling($k/$fact)-1))))
+ }
+ }
+}
+
+say rk_perm((1..@*ARGS[0].Int).List, (@*ARGS[1] || 1).Int);
+
+# run as <script> <$n for which we're permuting 1..$n> <the rank $k of the permutation you want>
diff --git a/challenge-054/stuart-little/raku/ch-2.p6 b/challenge-054/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..7c71620fc1
--- /dev/null
+++ b/challenge-054/stuart-little/raku/ch-2.p6
@@ -0,0 +1,45 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %*SUB-MAIN-OPTS=:named-anywhere,;
+my %cllens = (1 => 1);
+
+sub cltz($n) { ($n %% 2) ?? ($n div 2) !! (($n > 1) ?? (3*$n+1) !! (1)) }
+
+sub cllen($n) {
+ %cllens{$n} //= 1+cllen($n.&cltz)
+}
+
+sub cltz_seq(Int $n where * > 0) {
+ given $n {
+ when 1 { (1,) }
+ when * %% 2 { ($n,|cltz_seq($n div 2)) }
+ default { ($n,|cltz_seq(3*$n+1)) }
+ }
+}
+
+multi sub MAIN(
+ Bool :b(:$bonus),
+) {
+ my $L=1_000_000;
+ my $wndw=20;
+ my @maxn=[1];
+
+ for (1..$L) {
+ my $ln = cllen($_);
+ ($ln > %cllens{@maxn}.max) && do {
+ (@maxn.elems == $wndw) && @maxn.shift;
+ @maxn.push($_)
+ }
+ }
+
+ for @maxn {
+ say $_ ~ " " ~ %cllens{$_}
+ }
+}
+
+multi sub MAIN(
+ *@ARGS,
+) {
+ say @ARGS[0].Int.&cltz_seq;
+}
diff --git a/challenge-055/stuart-little/README b/challenge-055/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-055/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-055/stuart-little/raku/ch-1.p6 b/challenge-055/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..bd77d55d9e
--- /dev/null
+++ b/challenge-055/stuart-little/raku/ch-1.p6
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub max1flip(Str $s where * ~~ /^(0|1)*$/) {
+ ((^$s.chars) X (^$s.chars)).grep({ $_[0] <= $_[1] }).classify({ $s.substr($_[0]..$_[1]).comb.grep(0).elems - $s.substr($_[0]..$_[1]).comb.grep(1).elems }).max(*.key).value
+}
+
+say @*ARGS[0].&max1flip
+
+# run as <script> <binary string>
diff --git a/challenge-055/stuart-little/raku/ch-2.p6 b/challenge-055/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..49aece53ba
--- /dev/null
+++ b/challenge-055/stuart-little/raku/ch-2.p6
@@ -0,0 +1,13 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub wv(@a,$b) {
+ $b eqv ().Bag && do {say @a; return};
+ for $b.keys.grep({ (@a %% 2) ?? ($_ >= (@a[*-1] || -Inf)) !! ($_ <= (@a[*-1] || Inf)) }) {
+ wv((|@a,$_),($b (-) $_))
+ }
+}
+
+wv((), @*ARGS.map(*.Int).Bag)
+
+# run as <script> <space-separated integers>
diff --git a/challenge-064/stuart-little/README b/challenge-064/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-064/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-064/stuart-little/raku/ch-1.p6 b/challenge-064/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..97673cbeb9
--- /dev/null
+++ b/challenge-064/stuart-little/raku/ch-1.p6
@@ -0,0 +1,26 @@
+#!/usr/bin/env perl6
+use v6;
+
+my @gr=[
+ < 1 2 3 >,
+ < 4 5 6 >,
+ < 7 8 9 >,
+].map(*.map({ $_.Int })).map(*.Array);
+
+sub cost(@gr,$i,$j) {
+ $i==0 && return @gr[0][0..$j].sum;
+ $j==0 && return @gr[0..$i].map(*.[0]).sum;
+ return @gr[$i][$j]+min(cost(@gr,$i-1,$j),cost(@gr,$i,$j-1));
+}
+
+sub pth(@gr,@acc) {
+ @acc+1 == @gr + @gr[0] && return @acc;
+ given my ($x,$y) = @acc[0] {
+ when ($x >= 1) && (@gr.&cost($x,$y)-@gr.&cost($x-1,$y)==@gr[$x][$y]) { pth(@gr,(($x-1,$y), |@acc)) }
+ when ($y >= 1) && (@gr.&cost($x,$y)-@gr.&cost($x,$y-1)==@gr[$x][$y]) { pth(@gr,(($x,$y-1), |@acc)) }
+ }
+}
+
+say cost(@gr, @gr.elems-1, @gr[0].elems-1), ": ", pth(@gr, ((@gr-1,@gr[0]-1),)).map({ @gr[$_[0]][$_[1]] }).join(" -> ")
+
+# run as <script>
diff --git a/challenge-064/stuart-little/raku/ch-2.p6 b/challenge-064/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..93a9c2d763
--- /dev/null
+++ b/challenge-064/stuart-little/raku/ch-2.p6
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub partw($w,@a,@acc) {
+ $w eq '' && return @acc;
+ @a.map({ $w.starts-with($_) && (partw($w.substr($_.chars),@a,(|@acc,$_))) })
+ .grep( *.so )
+}
+
+partw(@*ARGS[0],@*ARGS[1..*],())
+.map(*.flat)
+.say
+
+# run as <script> <target word> <array of space-separated words>
+
diff --git a/challenge-066/stuart-little/README b/challenge-066/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-066/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-066/stuart-little/raku/ch-1.p6 b/challenge-066/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..70dd7bfeee
--- /dev/null
+++ b/challenge-066/stuart-little/raku/ch-1.p6
@@ -0,0 +1,28 @@
+#!/usr/bin/env perl6
+use v6;
+
+multi sub awkdiv(Int $n, 0) {
+ "You're dividing by zero!"
+}
+
+multi sub awkdiv(0, Int $d) {
+ 0
+}
+
+multi sub awkdiv(Int $n, Int $d where {sign($_) == sign $n}) {
+ given $d.abs {
+ when * > $n.abs {0}
+ default { 1+ awkdiv(($n-$d).abs,$d.abs)}
+ }
+}
+
+multi sub awkdiv(Int $n, Int $d where {sign($_) !== sign $n}) {
+ given $d.abs {
+ when * > $n.abs {-1}
+ default { -1+ awkdiv(($n+$d).abs,-$d.abs)}
+ }
+}
+
+say awkdiv(@*ARGS[0].Int, @*ARGS[1].Int)
+
+# run as <script> <numerator> <denominator>
diff --git a/challenge-066/stuart-little/raku/ch-2.p6 b/challenge-066/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..8c072a7bd9
--- /dev/null
+++ b/challenge-066/stuart-little/raku/ch-2.p6
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl6
+use v6;
+
+sub pws(Int $n) {
+ (2..$n.sqrt).grep({ $_ ** log($n,$_).Int == $n }).map({ $_, log($n,$_) })
+}
+
+say (@*ARGS[0].Int.&pws) ?? ("$_[0]^$_[1]" for |@*ARGS[0].Int.&pws) !! 0
+
+# run as <script> <number>
diff --git a/challenge-067/stuart-little/README b/challenge-067/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-067/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-067/stuart-little/raku/ch-1.p6 b/challenge-067/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..90074e7548
--- /dev/null
+++ b/challenge-067/stuart-little/raku/ch-1.p6
@@ -0,0 +1,6 @@
+#!/usr/bin/env perl6
+use v6;
+
+(1..@*ARGS[0].Int).combinations(@*ARGS[1].Int).say
+
+# run as <script> <number> <combination size>
diff --git a/challenge-067/stuart-little/raku/ch-2.p6 b/challenge-067/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..94515f20fb
--- /dev/null
+++ b/challenge-067/stuart-little/raku/ch-2.p6
@@ -0,0 +1,22 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %trhsh = (
+ 1 => <_ @>,
+ 2 => <a b c>,
+ 3 => <d e f>,
+ 4 => <g h i>,
+ 5 => <j k l>,
+ 6 => <m n o>,
+ 7 => <p q r s>,
+ 8 => <t u v>,
+ 9 => <w x y z>,
+);
+
+sub kypd(Str $s where * ~~ /^<[1..9]>+$/) {
+ $s.comb.map({ %trhsh.{$_} }).reduce(&infix:<X>).map(*.join)
+}
+
+@*ARGS[0].&kypd.say
+
+# run as <script> <digit string>
diff --git a/challenge-086/duncan-c-white/README b/challenge-086/duncan-c-white/README
index 53a59c4fc8..306809ff7f 100644
--- a/challenge-086/duncan-c-white/README
+++ b/challenge-086/duncan-c-white/README
@@ -1,50 +1,91 @@
-Task 1: "Triplet Sum
+Task 1: "Pair Difference
-You are given an array of real numbers greater than zero.
+You are given an array of integers @N and an integer $A.
-Write a script to find if there exists a triplet (a,b,c) such that 1 <
-a+b+c < 2. Print 1 if you succeed otherwise 0.
+Write a script to find find if there exists a pair of elements in the
+array whose difference is $A. Print 1 if exists otherwise 0.
Example 1:
- Input: @R = (1.2, 0.4, 0.1, 2.5)
- Output: 1 as 1 < 1.2 + 0.4 + 0.1 < 2
+ Input: @N = (10, 8, 12, 15, 5) and $A = 7
+ Output: 1 as 15 - 8 = 7
Example 2:
- Input: @R = (0.2, 1.5, 0.9, 1.1)
- Output: 0
+ Input: @N = (1, 5, 2, 9, 7) and $A = 6
+ Output: 1 as 7 - 1 = 6
Example 3:
- Input: @R = (0.5, 1.1, 0.3, 0.7)
- Output: 1 as 1 < 0.5 + 1.1 + 0.3 < 2
+ Input: @N = (10, 30, 20, 50, 40) and $A = 15
+ Output: 0
-My notes: simple, I think it means "pick any 3 elements a, b and c from the
-array and determine if any a,b,c triple sums to between 1 and 2", although both
-successful examples show 3 ADJACENT elements a, b and c...
+My notes: simple and straightforward: try all pairs of elements looking
+for abs(x-y)==A
-Task 2: "Power of Two Integers
+Task 2: "Sudoku Puzzle
-You are given a positive integer $N.
+You are given Sudoku puzzle (9x9).
-Write a script to find if it can be expressed as a ** b where a > 0 and
-b > 1. Print 1 if you succeed otherwise 0.
+Write a script to complete the puzzle and must respect the following rules:
+a) Each row must have the numbers 1-9 occuring just once.
+b) Each column must have the numbers 1-9 occuring just once.
+c) The numbers 1-9 must occur just once in each of the 9 sub-boxes (3x3) of the grid.
-Example 1:
+Example:
-Input: 8
-Output: 1 as 8 = 2 ** 3
+[ _ _ _ 2 6 _ 7 _ 1 ]
+[ 6 8 _ _ 7 _ _ 9 _ ]
+[ 1 9 _ _ _ 4 5 _ _ ]
+[ 8 2 _ 1 _ _ _ 4 _ ]
+[ _ _ 4 6 _ 2 9 _ _ ]</