diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-08-10 22:58:27 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-08-10 22:58:27 +0100 |
| commit | b67f64358fdd6e20aa5ac00aa0fd502d5974df51 (patch) | |
| tree | 84838fd2cfa9d897d00e250687c5bdca9edfc36d | |
| parent | 4f460b4d52732796dca532f88a99d5de3d3accf9 (diff) | |
| download | perlweeklychallenge-club-b67f64358fdd6e20aa5ac00aa0fd502d5974df51.tar.gz perlweeklychallenge-club-b67f64358fdd6e20aa5ac00aa0fd502d5974df51.tar.bz2 perlweeklychallenge-club-b67f64358fdd6e20aa5ac00aa0fd502d5974df51.zip | |
- Added solutions by Arne Sommer.
| -rw-r--r-- | challenge-020/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-020/arne-sommer/perl6/ch-1.p6 | 16 | ||||
| -rwxr-xr-x | challenge-020/arne-sommer/perl6/ch-2.p6 | 35 | ||||
| -rwxr-xr-x | challenge-020/arne-sommer/perl6/smallest-amiciable-number-cheating | 6 | ||||
| -rwxr-xr-x | challenge-020/arne-sommer/perl6/split-change-gather | 26 | ||||
| -rwxr-xr-x | challenge-020/arne-sommer/perl6/split-change-grammar | 14 | ||||
| -rwxr-xr-x | challenge-020/arne-sommer/perl6/split-change-loop | 35 | ||||
| -rw-r--r-- | stats/pwc-current.json | 209 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 46 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 324 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 908 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 26 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 26 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 116 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 56 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 44 |
16 files changed, 1020 insertions, 868 deletions
diff --git a/challenge-020/arne-sommer/blog.txt b/challenge-020/arne-sommer/blog.txt new file mode 100644 index 0000000000..f1e4b2b2cb --- /dev/null +++ b/challenge-020/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://perl6.eu/amicable-split.html diff --git a/challenge-020/arne-sommer/perl6/ch-1.p6 b/challenge-020/arne-sommer/perl6/ch-1.p6 new file mode 100755 index 0000000000..5e8a9e35f4 --- /dev/null +++ b/challenge-020/arne-sommer/perl6/ch-1.p6 @@ -0,0 +1,16 @@ +#! /usr/bin/env perl6 + +grammar SPLIT +{ + regex TOP { <Char>+ } + regex Char { (.) $0* } +} + +sub MAIN (Str $string, :$quote = '"') +{ + my $result = SPLIT.parse($string); + + $result + ?? $result<Char>.map({ $quote ~ $_.Str ~ $quote }).join(", ").say + !! print "\n"; +} diff --git a/challenge-020/arne-sommer/perl6/ch-2.p6 b/challenge-020/arne-sommer/perl6/ch-2.p6 new file mode 100755 index 0000000000..54fe99b3c3 --- /dev/null +++ b/challenge-020/arne-sommer/perl6/ch-2.p6 @@ -0,0 +1,35 @@ +#! /usr/bin/env perl6 + +multi proper-divisors (2) { return (1); } + +multi proper-divisors (Int $number where $number > 2) +{ + return (1) if $number.is-prime; + + my @divisors = (1); + for 2 .. ($number -1) -> $candidate + { + @divisors.push: $candidate if $number %% $candidate; + } + return @divisors; +} + +my @sum; + +for 2 .. Inf -> $current +{ + my $sum = proper-divisors($current).sum; + @sum[$current] = $sum; + + next if $sum == 1 || $sum >= $current; + + my $new-sum = @sum[$sum] // next; + + next if $new-sum == 1 || $new-sum >= $current || $sum == $new-sum; + + if $sum == @sum[$new-sum] + { + say "(@sum[$sum], $sum)"; + last; + } +} diff --git a/challenge-020/arne-sommer/perl6/smallest-amiciable-number-cheating b/challenge-020/arne-sommer/perl6/smallest-amiciable-number-cheating new file mode 100755 index 0000000000..df2534bafd --- /dev/null +++ b/challenge-020/arne-sommer/perl6/smallest-amiciable-number-cheating @@ -0,0 +1,6 @@ +#! /usr/bin/env perl6 + +say "(220, 284)"; + +# The challenge said "Write a script to print ..." and not "compute", so I'm good. + diff --git a/challenge-020/arne-sommer/perl6/split-change-gather b/challenge-020/arne-sommer/perl6/split-change-gather new file mode 100755 index 0000000000..269821bb1f --- /dev/null +++ b/challenge-020/arne-sommer/perl6/split-change-gather @@ -0,0 +1,26 @@ +#! /usr/bin/env perl6 + +sub MAIN (Str $string, :$quote = '"') +{ + split-change($string).map({ $quote ~ $_ ~ $quote }).join(", ").say; +} + +sub split-change ($in) +{ + gather + { + my $out = $in.substr(0,1); + for 1 .. $in.chars -> $index + { + if $out.substr(0,1) eq $in.substr($index,1) + { + $out ~= $in.substr($index,1); + } + else + { + take $out; + $out = $in.substr($index,1); + } + } + } +} diff --git a/challenge-020/arne-sommer/perl6/split-change-grammar b/challenge-020/arne-sommer/perl6/split-change-grammar new file mode 100755 index 0000000000..ecc7a6ecdb --- /dev/null +++ b/challenge-020/arne-sommer/perl6/split-change-grammar @@ -0,0 +1,14 @@ +#! /usr/bin/env perl6 + +grammar SPLIT +{ + regex TOP { <Char>+ } + regex Char { (.) $0* } +} + +sub MAIN (Str $string, :$quote = '"') +{ + my $result = SPLIT.parse($string); + + $result<Char>.map({ $quote ~ $_.Str ~ $quote }).join(", ").say; +} diff --git a/challenge-020/arne-sommer/perl6/split-change-loop b/challenge-020/arne-sommer/perl6/split-change-loop new file mode 100755 index 0000000000..931a4e94d9 --- /dev/null +++ b/challenge-020/arne-sommer/perl6/split-change-loop @@ -0,0 +1,35 @@ +#! /usr/bin/env perl6 + +sub MAIN (Str $string, :$quote = '"') +{ + split-change($string).map({ $quote ~ $_ ~ $quote }).join(", ").say; +} + +sub split-change ($string) +{ + my @out; + my @in = $string.comb; + my $out; + + while @in + { + $out = @in.shift; + + while @in + { + if @in[0] eq $out.substr(0,1) + { + $out ~= @in.shift; + } + else + { + @out.push($out); $out = ""; + last; + } + } + } + + @out.push($out) if $out; + + return @out; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 49c8e11eda..2540a10966 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,52 +1,32 @@ { - "chart" : { - "type" : "column" - }, - "xAxis" : { - "type" : "category" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, - "title" : { - "text" : "Perl Weekly Challenge - 020" - }, - "subtitle" : { - "text" : "[Champions: 19] Last updated at 2019-08-10 19:51:19 GMT" - }, - "tooltip" : { - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", - "followPointer" : 1 - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, "drilldown" : { "series" : [ { - "id" : "Andrezgz", + "name" : "Andrezgz", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Andrezgz" + "id" : "Andrezgz" }, { - "id" : "Athanasius", + "id" : "Arne Sommer", + "data" : [ + [ + "Perl 6", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Arne Sommer" + }, + { + "name" : "Athanasius", "data" : [ [ "Perl 5", @@ -57,9 +37,11 @@ 2 ] ], - "name" : "Athanasius" + "id" : "Athanasius" }, { + "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl 5", @@ -69,29 +51,27 @@ "Blog", 1 ] - ], - "id" : "Dave Jacoby", - "name" : "Dave Jacoby" + ] }, { "name" : "Duane Powell", - "id" : "Duane Powell", "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Duane Powell" }, { + "name" : "E. Choroba", "data" : [ [ "Perl 5", 2 ] ], - "id" : "E. Choroba", - "name" : "E. Choroba" + "id" : "E. Choroba" }, { "name" : "Feng Chang", @@ -108,48 +88,48 @@ "id" : "Feng Chang" }, { + "id" : "Gustavo Chaves", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Gustavo Chaves", "name" : "Gustavo Chaves" }, { - "id" : "Kevin Colyer", + "name" : "Kevin Colyer", "data" : [ [ "Perl 6", 2 ] ], - "name" : "Kevin Colyer" + "id" : "Kevin Colyer" }, { - "name" : "Lubos Kolouch", + "id" : "Lubos Kolouch", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Lubos Kolouch" + "name" : "Lubos Kolouch" }, { + "id" : "Mark Anderson", + "name" : "Mark Anderson", "data" : [ [ "Perl 5", 2 ] - ], - "id" : "Mark Anderson", - "name" : "Mark Anderson" + ] }, { - "name" : "Martin Barth", "id" : "Martin Barth", + "name" : "Martin Barth", "data" : [ [ "Perl 6", @@ -168,37 +148,36 @@ "id" : "Noud" }, { + "id" : "Ozzy", "data" : [ [ "Perl 6", 1 ] ], - "id" : "Ozzy", "name" : "Ozzy" }, { - "name" : "Pete Houston", "id" : "Pete Houston", "data" : [ [ "Perl 5", 1 ] - ] + ], + "name" : "Pete Houston" }, { "name" : "Randy Lauen", - "id" : "Randy Lauen", "data" : [ [ "Perl 6", 2 ] - ] + ], + "id" : "Randy Lauen" }, { - "id" : "Roger Bell West", "data" : [ [ "Perl 5", @@ -209,11 +188,10 @@ 2 ] ], - "name" : "Roger Bell West" + "name" : "Roger Bell West", + "id" : "Roger Bell West" }, { - "name" : "Ruben Westerberg", - "id" : "Ruben Westerberg", "data" : [ [ "Perl 5", @@ -223,11 +201,13 @@ "Perl 6", 2 ] - ] + ], + "name" : "Ruben Westerberg", + "id" : "Ruben Westerberg" }, { - "name" : "Simon Proctor", "id" : "Simon Proctor", + "name" : "Simon Proctor", "data" : [ [ "Perl 6", @@ -236,20 +216,41 @@ ] }, { + "id" : "Steven Wilson", "name" : "Steven Wilson", "data" : [ [ "Perl 5", 2 ] - ], - "id" : "Steven Wilson" + ] } ] }, + "xAxis" : { + "type" : "category" + }, + "subtitle" : { + "text" : "[Champions: 20] Last updated at 2019-08-10 21:54:51 GMT" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, + "tooltip" : { + "followPointer" : 1, + "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/>" + }, "series" : [ { "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 020", "data" : [ { "name" : "Andrezgz", @@ -257,19 +258,24 @@ "y" : 2 }, { - "drilldown" : "Athanasius", + "name" : "Arne Sommer", + "drilldown" : "Arne Sommer", + "y" : 3 + }, + { "y" : 4, + "drilldown" : "Athanasius", "name" : "Athanasius" }, { - "drilldown" : "Dave Jacoby", "y" : 3, + "drilldown" : "Dave Jacoby", "name" : "Dave Jacoby" }, { - "name" : "Duane Powell", + "y" : 2, "drilldown" : "Duane Powell", - "y" : 2 + "name" : "Duane Powell" }, { "name" : "E. Choroba", @@ -278,28 +284,28 @@ }, { "name" : "Feng Chang", - "y" : 4, - "drilldown" : "Feng Chang" + "drilldown" : "Feng Chang", + "y" : 4 }, { - "y" : 2, "drilldown" : "Gustavo Chaves", + "y" : 2, "name" : "Gustavo Chaves" }, { - "name" : "Kevin Colyer", "y" : 2, - "drilldown" : "Kevin Colyer" + "drilldown" : "Kevin Colyer", + "name" : "Kevin Colyer" }, { - "name" : "Lubos Kolouch", "drilldown" : "Lubos Kolouch", - "y" : 2 + "y" : 2, + "name" : "Lubos Kolouch" }, { - "name" : "Mark Anderson", "drilldown" : "Mark Anderson", - "y" : 2 + "y" : 2, + "name" : "Mark Anderson" }, { "name" : "Martin Barth", @@ -307,9 +313,9 @@ "drilldown" : "Martin Barth" }, { - "name" : "Noud", + "drilldown" : "Noud", "y" : 2, - "drilldown" : "Noud" + "name" : "Noud" }, { "drilldown" : "Ozzy", @@ -317,24 +323,24 @@ "name" : "Ozzy" }, { - "name" : "Pete Houston", "drilldown" : "Pete Houston", - "y" : 1 + "y" : 1, + "name" : "Pete Houston" }, { - "drilldown" : "Randy Lauen", + "name" : "Randy Lauen", "y" : 2, - "name" : "Randy Lauen" + "drilldown" : "Randy Lauen" }, { "name" : "Roger Bell West", - "drilldown" : "Roger Bell West", - "y" : 4 + "y" : 4, + "drilldown" : "Roger Bell West" }, { "name" : "Ruben Westerberg", - "y" : 4, - "drilldown" : "Ruben Westerberg" + "drilldown" : "Ruben Westerberg", + "y" : 4 }, { "y" : 2, @@ -342,12 +348,25 @@ "name" : "Simon Proctor" }, { - "y" : 2, + "name" : "Steven Wilson", "drilldown" : "Steven Wilson", - "name" : "Steven Wilson" + "y" : 2 } - ], - "name" : "Perl Weekly Challenge - 020" + ] } - ] + ], + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 020" + }, + "legend" : { + "enabled" : 0 + }, + "chart" : { + "type" : "column" + } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index bce0a9a9c7..fce0d5a975 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -2,22 +2,22 @@ "series" : [ { "dataLabels" : { + "color" : "#FFFFFF", "format" : "{point.y:.0f}", - "enabled" : "true", "align" : "right", - "rotation" : -90, + "enabled" : "true", + "y" : 10, "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" }, - "color" : "#FFFFFF", - "y" : 10 + "rotation" : -90 }, "name" : "Contributions", "data" : [ [ "Blog", - 185 + 186 ], [ "Perl 5", @@ -25,39 +25,39 @@ ], [ "Perl 6", - 488 + 490 ] ] } ], - "xAxis" : { - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "type" : "category" - }, - "subtitle" : { - "text" : "Last updated at 2019-08-10 19:51:50 GMT" - }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" }, "chart" : { "type" : "column" }, - "title" : { - "text" : "Perl Weekly Challenge Contributions - 2019" - }, "yAxis" : { "min" : 0, "title" : { "text" : null } }, + "title" : { + "text" : "Perl Weekly Challenge Contributions - 2019" + }, + "xAxis" : { + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } + }, + "type" : "category" + }, "legend" : { "enabled" : "false" + }, + "subtitle" : { + "text" : "Last updated at 2019-08-10 21:58:10 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 3ee3319cbf..79637f638d 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,8 +1,125 @@ { + "tooltip" : { + "headerFormat" : "<span style=\"font-size:11px\"></span>", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : "true" + }, + "series" : [ + { + "data" : [ + { + "y" : 123, + "drilldown" : "001", + "name" : "#001" + }, + { + "name" : "#002", + "drilldown" : "002", + "y" : 104 + }, + { + "name" : "#003", + "drilldown" : "003", + "y" : 66 + }, + { + "name" : "#004", + "drilldown" : "004", + "y" : 84 + }, + { + "drilldown" : "005", + "name" : "#005", + "y" : 66 + }, + { + "y" : 47, + "name" : "#006", + "drilldown" : "006" + }, + { + "y" : 54, + "name" : "#007", + "drilldown" : "007" + }, + { + "y" : 67, + "name" : "#008", + "drilldown" : "008" + }, + { + "drilldown" : "009", + "name" : "#009", + "y" : 65 + }, + { + "drilldown" : "010", + "name" : "#010", + "y" : 58 + }, + { + "y" : 77, + "drilldown" : "011", + "name" : "#011" + }, + { + "name" : "#012", + "drilldown" : "012", + "y" : 81 + }, + { + "name" : "#013", + "drilldown" : "013", + "y" : 74 + }, + { + "y" : 94, + "drilldown" : "014", + "name" : "#014" + }, + { + "y" : 90, + "drilldown" : "015", + "name" : "#015" + }, + { + "drilldown" : "016", + "name" : "#016", + "y" : 64 + }, + { + "drilldown" : "017", + "name" : "#017", + "y" : 77 + }, + { + "y" : 73, + "drilldown" : "018", + "name" : "#018" + }, + { + "y" : 92, + "drilldown" : "019", + "name" : "#019" + }, + { + "y" : 48, + "drilldown" : "020", + "name" : "#020" + } + ], + "name" : "Perl Weekly Challenge Languages", + "colorByPoint" : "true" + } + ], + "chart" : { + "type" : "column" + }, "drilldown" : { "series" : [ { "id" : "001", + "name" : "001", "data" : [ [ "Perl 5", @@ -16,11 +133,9 @@ "Blog", 10 ] - ], - "name" : "001" + ] }, { - "name" : "002", "data" : [ [ "Perl 5", @@ -35,10 +150,10 @@ 9 ] ], - "id" : "002" + "id" : "002", + "name" : "002" }, { - "id" : "003", "data" : [ [ "Perl 5", @@ -53,10 +168,10 @@ 8 ] ], - "name" : "003" + "name" : "003", + "id" : "003" }, { - "id" : "004", "data" : [ [ "Perl 5", @@ -71,11 +186,12 @@ 9 ] ], + "id" : "004", "name" : "004" }, { - "name" : "005", "id" : "005", + "name" : "005", "data" : [ [ "Perl 5", @@ -92,6 +208,8 @@ ] }, { + "name" : "006", + "id" : "006", "data" : [ [ "Perl 5", @@ -105,13 +223,9 @@ "Blog", 6 ] - ], - "id" : "006", - "name" : "006" + ] }, { - "name" : "007", - "id" : "007", "data" : [ [ "Perl 5", @@ -125,11 +239,13 @@ "Blog", 8 ] - ] + ], + "name" : "007", + "id" : "007" }, { - "name" : "008", "id" : "008", + "name" : "008", "data" : [ [ "Perl 5", @@ -146,7 +262,6 @@ ] }, { - "id" : "009", "data" : [ [ "Perl 5", @@ -161,9 +276,12 @@ 11 ] ], - "name" : "009" + "name" : "009", + "id" : "009" }, { + "name" : "010", + "id" : "010", "data" : [ [ "Perl 5", @@ -177,12 +295,11 @@ "Blog", 9 ] - ], - "id" : "010", - "name" : "010" + ] }, { "id" : "011", + "name" : "011", "data" : [ [ "Perl 5", @@ -196,11 +313,9 @@ "Blog", 8 ] - ], - "name" : "011" + ] }, { - "id" : "012", "data" : [ [ "Perl 5", @@ -215,10 +330,12 @@ 9 ] ], + "id" : "012", "name" : "012" }, { "name" : "013", + "id" : "013", "data" : [ [ "Perl 5", @@ -232,10 +349,11 @@ "Blog", 11 ] - ], - "id" : "013" + ] }, { + "id" : "014", + "name" : "014", "data" : [ [ "Perl 5", @@ -249,12 +367,9 @@ "Blog", 13 ] - ], - "id" : "014", - "name" : "014" + ] }, { - "name" : "015", "data" : [ [ "Perl 5", @@ -269,11 +384,12 @@ 12 ] ], + "name" : "015", "id" : "015" }, { - "name" : "016", "id" : "016", + "name" : "016", "data" : [ [ "Perl 5", @@ -290,6 +406,7 @@ ] }, { + "name" : "017", "id" : "017", "data" : [ [ @@ -304,8 +421,7 @@ "Blog", 10 ] - ], - "name" : "017" + ] }, { "data" : [ @@ -326,7 +442,6 @@ "name" : "018" }, { - "id" : "019", "data" : [ [ "Perl 5", @@ -341,6 +456,7 @@ 10 ] ], + "id" : "019", "name" : "019" }, { @@ -353,135 +469,16 @@ ], [ "Perl 6", - 18 + 20 ], [ "Blog", - 1 + 2 ] ] } ] }, - "tooltip" : { - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : "true" - }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-08-10 19:51:50 GM |
