diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-08-03 14:23:12 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-08-03 14:23:12 +0100 |
| commit | 99521f09f4b8dced34101562d0eff194b1c643bd (patch) | |
| tree | b829ce21caee716f91c15d70c888be9cd44e5347 | |
| parent | 25365364c03d323564aad1593e3a769fb3815d09 (diff) | |
| download | perlweeklychallenge-club-99521f09f4b8dced34101562d0eff194b1c643bd.tar.gz perlweeklychallenge-club-99521f09f4b8dced34101562d0eff194b1c643bd.tar.bz2 perlweeklychallenge-club-99521f09f4b8dced34101562d0eff194b1c643bd.zip | |
- Added Raku solutions to the Challenge 072.
| -rwxr-xr-x | challenge-072/mohammad-anwar/raku/ch-1.raku | 33 | ||||
| -rwxr-xr-x | challenge-072/mohammad-anwar/raku/ch-1a.raku | 48 | ||||
| -rwxr-xr-x | challenge-072/mohammad-anwar/raku/ch-2.raku | 28 | ||||
| -rwxr-xr-x | challenge-072/mohammad-anwar/raku/ch-2a.raku | 38 | ||||
| -rw-r--r-- | challenge-072/mohammad-anwar/raku/input.txt | 100 | ||||
| -rw-r--r-- | stats/pwc-current.json | 184 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 48 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 580 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 758 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 30 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 50 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 92 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 32 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 398 |
16 files changed, 1409 insertions, 1158 deletions
diff --git a/challenge-072/mohammad-anwar/raku/ch-1.raku b/challenge-072/mohammad-anwar/raku/ch-1.raku new file mode 100755 index 0000000000..abdff9e6bf --- /dev/null +++ b/challenge-072/mohammad-anwar/raku/ch-1.raku @@ -0,0 +1,33 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 072 +# +# Task #1: Trailing Zeroes +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-072 +# + +use v6.d; + +sub MAIN(Int :$N where { $N <= 10 } = 10 ) { + my ($factorial, $zero-count) = find-trailing-zeroes($N); + + say sprintf("%d => %d", $factorial, $zero-count); +} + +sub find-trailing-zeroes(Int $N is copy where $N <= 10) { + + # generate factorial + $N *= $_ for 1..$N-1; + + # match trailing zeroes + my $trailing-zeroes = $N ~~ m/ <[1..9]>?(<[0]>+) /; + + return + ($trailing-zeroes) + ?? + ($N, $trailing-zeroes[0].codes) + !! + ($N, 0); +} diff --git a/challenge-072/mohammad-anwar/raku/ch-1a.raku b/challenge-072/mohammad-anwar/raku/ch-1a.raku new file mode 100755 index 0000000000..dbcf9532a1 --- /dev/null +++ b/challenge-072/mohammad-anwar/raku/ch-1a.raku @@ -0,0 +1,48 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 072 +# +# Task #1: Trailing Zeroes +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-072 +# + +use Test; + +my %test-cases = ( + 10 => 2, + 9 => 1, + 8 => 1, + 7 => 1, + 6 => 1, + 5 => 1, + 4 => 0, + 3 => 0, + 2 => 0, + 1 => 0, +); + +for %test-cases.keys.sort({ $^a <=> $^b }) -> $N { + is find-trailing-zeroes($N.Int)[1], + %test-cases{$N}, + "testing \$N=$N"; +} + +done-testing; + +sub find-trailing-zeroes(Int $N is copy where $N <= 10) { + + # generate factorial + $N *= $_ for 1..$N-1; + + # match trailing zeroes + my $trailing-zeroes = $N ~~ m/ <[1..9]>?(<[0]>+) /; + + return + ($trailing-zeroes) + ?? + ($N, $trailing-zeroes[0].codes) + !! + ($N, 0); +} diff --git a/challenge-072/mohammad-anwar/raku/ch-2.raku b/challenge-072/mohammad-anwar/raku/ch-2.raku new file mode 100755 index 0000000000..2e42757eaa --- /dev/null +++ b/challenge-072/mohammad-anwar/raku/ch-2.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 072 +# +# Task #2: Lines Range +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-072 +# + +use v6.d; + +sub MAIN(Str :$file where *.IO.f, + Int :$A where * > 0, + Int :$B where * >= $A) { + + lines-range($file, $A, $B).join("\n").say; +} + +sub lines-range(Str $file, Int $A, Int $B) { + + my @lines = Empty; + for $A-1 .. $B-1 -> $i { + @lines.push: $file.IO.lines[$i]; + } + + return @lines; +} diff --git a/challenge-072/mohammad-anwar/raku/ch-2a.raku b/challenge-072/mohammad-anwar/raku/ch-2a.raku new file mode 100755 index 0000000000..fa477ce6ce --- /dev/null +++ b/challenge-072/mohammad-anwar/raku/ch-2a.raku @@ -0,0 +1,38 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 072 +# +# Task #2: Lines Range +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-072 +# + +use Test; + +my Str $file = "input.txt"; +my @test-cases = ( + { A => 1, B => 3, O => ['L1','L2','L3'] }, + { A => 2, B => 4, O => ['L2','L3','L4'] }, + { A => 3, B => 5, O => ['L3','L4','L5'] }, + { A => 4, B => 6, O => ['L4','L5','L6'] }, + { A => 5, B => 7, O => ['L5','L6','L7'] }, +); + +for @test-cases -> $test { + is-deeply lines-range($file, $test{<A>}, $test<B>), + $test{<O>}, + "testing A=$test{<A>}, B=$test{<B>}"; +} + +done-testing; + +sub lines-range(Str $file, Int $A, Int $B) { + + my @lines = Empty; + for $A-1 .. $B-1 -> $i { + @lines.push: $file.IO.lines[$i]; + } + + return @lines; +} diff --git a/challenge-072/mohammad-anwar/raku/input.txt b/challenge-072/mohammad-anwar/raku/input.txt new file mode 100644 index 0000000000..e5a15512e0 --- /dev/null +++ b/challenge-072/mohammad-anwar/raku/input.txt @@ -0,0 +1,100 @@ +L1 +L2 +L3 +L4 +L5 +L6 +L7 +L8 +L9 +L10 +L11 +L12 +L13 +L14 +L15 +L16 +L17 +L18 +L19 +L20 +L21 +L22 +L23 +L24 +L25 +L26 +L27 +L28 +L29 +L30 +L31 +L32 +L33 +L34 +L35 +L36 +L37 +L38 +L39 +L40 +L41 +L42 +L43 +L44 +L45 +L46 +L47 +L48 +L49 +L50 +L51 +L52 +L53 +L54 +L55 +L56 +L57 +L58 +L59 +L60 +L61 +L62 +L63 +L64 +L65 +L66 +L67 +L68 +L69 +L70 +L71 +L72 +L73 +L74 +L75 +L76 +L77 +L78 +L79 +L80 +L81 +L82 +L83 +L84 +L85 +L86 +L87 +L88 +L89 +L90 +L91 +L92 +L93 +L94 +L95 +L96 +L97 +L98 +L99 +L100 diff --git a/stats/pwc-current.json b/stats/pwc-current.json index af0159d284..08aa33453d 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,17 +1,86 @@ { + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "legend" : { + "enabled" : 0 + }, + "title" : { + "text" : "Perl Weekly Challenge - 072" + }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "y" : 2, + "drilldown" : "Jason Messer", + "name" : "Jason Messer" + }, + { + "y" : 5, + "drilldown" : "Javier Luque", + "name" : "Javier Luque" + }, + { + "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari", + "y" : 4 + }, + { + "name" : "Mark Anderson", + "y" : 2, + "drilldown" : "Mark Anderson" + }, + { + "name" : "Mohammad S Anwar", + "y" : 4, + "drilldown" : "Mohammad S Anwar" + }, + { + "name" : "Niels van Dijke", + "y" : 2, + "drilldown" : "Niels van Dijke" + }, + { + "drilldown" : "Roger Bell_West", + "y" : 4, + "name" : "Roger Bell_West" + }, + { + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor", + "y" : 2 + } + ], + "name" : "Perl Weekly Challenge - 072" + } + ], + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, "drilldown" : { "series" : [ { - "id" : "Jason Messer", - "name" : "Jason Messer", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Jason Messer", + "name" : "Jason Messer" }, { + "id" : "Javier Luque", "data" : [ [ "Perl", @@ -26,10 +95,10 @@ 1 ] ], - "id" : "Javier Luque", "name" : "Javier Luque" }, { + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -40,40 +109,44 @@ 2 ] ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + "id" : "Luca Ferrari" }, { - "id" : "Mark Anderson", "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Mark Anderson" }, { + "name" : "Mohammad S Anwar", + "id" : "Mohammad S Anwar", "data" : [ [ "Perl", 2 + ], + [ + "Raku", + 2 ] - ], - "name" : "Mohammad S Anwar", - "id" : "Mohammad S Anwar" + ] }, { + "id" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] ], - "id" : "Niels van Dijke", "name" : "Niels van Dijke" }, { + "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -84,12 +157,11 @@ 2 ] ], - "id" : "Roger Bell_West", - "name" : "Roger Bell_West" + "id" : "Roger Bell_West" }, { - "id" : "Simon Proctor", "name" : "Simon Proctor", + "id" : "Simon Proctor", "data" : [ [ "Raku", @@ -99,86 +171,18 @@ } ] }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "title" : { - "text" : "Perl Weekly Challenge - 072" - }, - "xAxis" : { - "type" : "category" - }, "chart" : { "type" : "column" }, - "legend" : { - "enabled" : 0 - }, - "subtitle" : { - "text" : "[Champions: 8] Last updated at 2020-08-03 10:49:46 GMT" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "xAxis" : { + "type" : "category" }, - "series" : [ - { - "colorByPoint" : 1, - "name" : "Perl Weekly Challenge - 072", - "data" : [ - { - "y" : 2, - "drilldown" : "Jason Messer", - "name" : "Jason Messer" - }, - { - "name" : "Javier Luque", - "drilldown" : "Javier Luque", - "y" : 5 - }, - { - "y" : 4, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" - }, - { - "y" : 2, - "name" : "Mark Anderson", - "drilldown" : "Mark Anderson" - }, - { - "drilldown" : "Mohammad S Anwar", - "name" : "Mohammad S Anwar", - "y" : 2 - }, - { - "y" : 2, - "drilldown" : "Niels van Dijke", - "name" : "Niels van Dijke" - }, - { - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West", - "y" : 4 - }, - { - "y" : 2, - "drilldown" : "Simon Proctor", - "name" : "Simon Proctor" - } - ] - } - ], "tooltip" : { + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : 1, - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" + "followPointer" : 1 + }, + "subtitle" : { + "text" : "[Champions: 8] Last updated at 2020-08-03 13:22:36 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index d078f46754..99579710ff 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,34 +1,25 @@ { + "subtitle" : { + "text" : "Last updated at 2020-08-03 13:22:36 GMT" + }, "xAxis" : { - "type" : "category", "labels" : { "style" : { "fontSize" : "13px", "fontFamily" : "Verdana, sans-serif" } - } - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, + "type" : "category" }, "chart" : { "type" : "column" }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, "series" : [ { "name" : "Contributions", - "dataLabels" : { - "color" : "#FFFFFF", - "align" : "right", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "enabled" : "true", - "rotation" : -90, - "y" : 10, - "format" : "{point.y:.0f}" - }, "data" : [ [ "Blog", @@ -40,20 +31,29 @@ ], [ "Raku", - 1912 + 1914 ] - ] + ], + "dataLabels" : { + "rotation" : -90, + "format" : "{point.y:.0f}", + "y" : 10, + "enabled" : "true", + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + }, + "color" : "#FFFFFF", + "align" : "right" + } } ], - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, "legend" : { "enabled" : "false" }, - "subtitle" : { - "text" : "Last updated at 2020-08-03 10:49:46 GMT" - }, "yAxis" : { "min" : 0, "title" : { diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 0baedc0e76..b30cae8c1d 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,25 +1,22 @@ { - "title" : { - "text" : "Perl Weekly Challenge Language" + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-08-03 13:22:36 GMT" + }, + "tooltip" : { + "followPointer" : "true", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", + "headerFormat" : "<span style=\"font-size:11px\"></span>" }, "xAxis" : { "type" : "category" }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, "chart" : { "type" : "column" }, "drilldown" : { "series" : [ { + "name" : "001", "data" : [ [ "Perl", @@ -34,8 +31,7 @@ 11 ] ], - "id" : "001", - "name" : "001" + "id" : "001" }, { "data" : [ @@ -57,7 +53,6 @@ }, { "name" : "003", - "id" : "003", "data" : [ [ "Perl", @@ -71,11 +66,12 @@ "Blog", 9 ] - ] + ], + "id" : "003" }, { - "id" : "004", "name" : "004", + "id" : "004", "data" : [ [ "Perl", @@ -92,6 +88,8 @@ ] }, { + "name" : "005", + "id" : "005", "data" : [ [ "Perl", @@ -105,11 +103,11 @@ "Blog", 12 ] - ], - "name" : "005", - "id" : "005" + ] }, { + "name" : "006", + "id" : "006", "data" : [ [ "Perl", @@ -123,11 +121,10 @@ "Blog", 7 ] - ], - "name" : "006", - "id" : "006" + ] }, { + "id" : "007", "data" : [ [ "Perl", @@ -142,7 +139,6 @@ 10 ] ], - "id" : "007", "name" : "007" }, { @@ -182,6 +178,8 @@ "name" : "009" }, { + "name" : "010", + "id" : "010", "data" : [ [ "Perl", @@ -195,13 +193,9 @@ "Blog", 11 ] - ], - "id" : "010", - "name" : "010" + ] }, { - "id" : "011", - "name" : "011", "data" : [ [ "Perl", @@ -215,9 +209,13 @@ "Blog", 10 ] - ] + ], + "id" : "011", + "name" : "011" }, { + "name" : "012", + "id" : "012", "data" : [ [ "Perl", @@ -231,13 +229,10 @@ "Blog", 11 ] - ], - "name" : "012", - "id" : "012" + ] }, { "id" : "013", - "name" : "013", "data" : [ [ "Perl", @@ -251,11 +246,11 @@ "Blog", 13 ] - ] + ], + "name" : "013" }, { "name" : "014", - "id" : "014", "data" : [ [ "Perl", @@ -269,11 +264,11 @@ "Blog", 15 ] - ] + ], + "id" : "014" }, { "id" : "015", - "name" : "015", "data" : [ [ "Perl", @@ -287,11 +282,11 @@ "Blog", 15 ] - ] + ], + "name" : "015" }, { "name" : "016", - "id" : "016", "data" : [ [ "Perl", @@ -305,7 +300,8 @@ "Blog", 12 ] - ] + ], + "id" : "016" }, { "name" : "017", @@ -326,6 +322,8 @@ ] }, { + "name" : "018", + "id" : "018", "data" : [ [ "Perl", @@ -339,12 +337,9 @@ "Blog", 14 ] - ], - "name" : "018", - "id" : "018" + ] }, { - "id" : "019", "name" : "019", "data" : [ [ @@ -359,9 +354,11 @@ "Blog", 13 ] - ] + ], + "id" : "019" }, { + "id" : "020", "data" : [ [ "Perl", @@ -376,10 +373,10 @@ 13 ] ], - "id" : "020", "name" : "020" }, { + "name" : "021", "data" : [ [ "Perl", @@ -394,10 +391,10 @@ 10 ] ], - "id" : "021", - "name" : "021" + "id" : "021" }, { + "name" : "022", "data" : [ [ "Perl", @@ -412,12 +409,9 @@ 10 ] ], - "id" : "022", - "name" : "022" + "id" : "022" }, { - "id" : "023", - "name" : "023", "data" : [ [ "Perl", @@ -431,9 +425,12 @@ "Blog", 12 ] - ] + ], + "id" : "023", + "name" : "023" }, { + "id" : "024", "data" : [ [ "Perl", @@ -448,10 +445,10 @@ 11 ] ], - "name" : "024", - "id" : "024" + "name" : "024" }, { + "name" : "025", "data" : [ [ "Perl", @@ -466,10 +463,10 @@ 12 ] ], - "id" : "025", - "name" : "025" + "id" : "025" }, { + "id" : "026", "data" : [ [ "Perl", @@ -484,10 +481,10 @@ 10 ] ], - "name" : "026", - "id" : "026" + "name" : "026" }, { + "name" : "027", "data" : [ [ "Perl", @@ -502,12 +499,9 @@ 9 ] ], - "name" : "027", "id" : "027" }, { - "id" : "028", - "name" : "028", "data" : [ [ "Perl", @@ -521,11 +515,12 @@ "Blog", 9 ] - ] + ], + "id" : "028", + "name" : "028" }, { "id" : "029", - "name" : "029", "data" : [ [ "Perl", @@ -539,9 +534,12 @@ "Blog", 12 ] - ] + ], + "name" : "029" }, { + "name" : "030", + "id" : "030", "data" : [ [ "Perl", @@ -555,12 +553,9 @@ "Blog", 10 ] - ], - "name" : "030", - "id" : "030" + ] }, { - "id" : "031", "name" : "031", "data" : [ [ @@ -575,9 +570,11 @@ "Blog", 9 ] - ] + ], + "id" : "031" }, { + "id" : "032", "data" : [ [ "Perl", @@ -592,10 +589,11 @@ 10 ] ], - "name" : "032", - "id" : "032" + "name" : "032" }, { + "name" : "033", + "id" : "033", "data" : [ [ "Perl", @@ -609,13 +607,10 @@ "Blog", 10 ] - ], - "id" : "033", - "name" : "033" + ] }, { "name" : "034", - "id" : "034", "data" : [ [ "Perl", @@ -629,11 +624,11 @@ "Blog", 11 ] - ] + ], + "id" : "034" }, { "name" : "035", - "id" : "035", "data" : [ [ "Perl", @@ -647,11 +642,11 @@ "Blog", 9 ] - ] + ], + "id" : "035" }, { "name" : "036", - "id" : "036", "data" : [ [ "Perl", @@ -665,9 +660,11 @@ "Blog", 11 ] - ] + ], + "id" : "036" }, { + "id" : "037", "data" : [ [ "Perl", @@ -682,8 +679,7 @@ 9 ] ], - "name" : "037", - "id" : "037" + "name" : "037" }, { "data" : [ @@ -704,8 +700,6 @@ "name" : "038" }, { - "name" : "039", - "id" : "039", "data" : [ [ "Perl", @@ -719,11 +713,11 @@ "Blog", 12 ] - ] + ], + "id" : "039", + "name" : "039" }, { - "id" : "040", - "name" : "040", "data" : [ [ "Perl", @@ -737,9 +731,12 @@ "Blog", 10 ] - ] + ], + "id" : "040", + "name" : "040" }, |
