diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-08-05 19:06:46 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-08-05 19:06:46 +0100 |
| commit | 7e87522a53943500ea15abc061897f9687701114 (patch) | |
| tree | c4a2b66a98ab272da41e609d00dcb08a6648b2dd | |
| parent | e1928fedbe2476d46fcd7418ca4ab295bf9f8b94 (diff) | |
| download | perlweeklychallenge-club-7e87522a53943500ea15abc061897f9687701114.tar.gz perlweeklychallenge-club-7e87522a53943500ea15abc061897f9687701114.tar.bz2 perlweeklychallenge-club-7e87522a53943500ea15abc061897f9687701114.zip | |
- Added solutions by Duane Powell.
| -rw-r--r-- | challenge-020/duane-powell/perl5/ch-1.pl | 39 | ||||
| -rw-r--r-- | challenge-020/duane-powell/perl5/ch-2.pl | 89 | ||||
| -rw-r--r-- | stats/pwc-current.json | 97 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 50 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 308 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 568 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 126 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 124 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 28 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 260 |
11 files changed, 934 insertions, 791 deletions
diff --git a/challenge-020/duane-powell/perl5/ch-1.pl b/challenge-020/duane-powell/perl5/ch-1.pl new file mode 100644 index 0000000000..3875696618 --- /dev/null +++ b/challenge-020/duane-powell/perl5/ch-1.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl +use Modern::Perl; + +# Write a script to accept a string from command +# line and split it on change of character. +# For example, if the string is “ABBCDEEF”, then it +# should split like “A”, “BB”, “C”, “D”, “EE”, “F”. + +my $str = shift || "ABBCDEEF"; +my @str = split(//,$str); + +my ($a, $b) = splice(@str,0,2); +my $out = $a; +while (defined($b)) { + if ($a eq $b) { + $out .= $b; + } else { + print "$out,"; + $out = $b; + } + $a = $b; + $b = shift(@str); +} +say $out; + +__END__ + +./ch-1.pl +A,BB,C,D,EE,F + +./ch-1.pl "hello world" +h,e,ll,o, ,w,o,r,l,d + +./ch-1.pl "Nowww is the tttime for all gooood mmmeeennn" +N,o,www, ,i,s, ,t,h,e, ,ttt,i,m,e, ,f,o,r, ,a,ll, ,g,oooo,d, ,mmm,eee,nnn + +./ch-1.pl 3104630088 +3,1,0,4,6,3,00,88 + diff --git a/challenge-020/duane-powell/perl5/ch-2.pl b/challenge-020/duane-powell/perl5/ch-2.pl new file mode 100644 index 0000000000..6112356c11 --- /dev/null +++ b/challenge-020/duane-powell/perl5/ch-2.pl @@ -0,0 +1,89 @@ +#!/usr/bin/perl +use Modern::Perl; +use ntheory qw(divisors); + +# Write a script to print the smallest pair of Amicable Numbers. For more information, +# please checkout wikipedia https://en.wikipedia.org/wiki/Amicable_numbers +# The first ten amicable pairs are: +# (220, 284), (1184, 1210), (2620, 2924), (5020, 5564), (6232, 6368), (10744, 10856), +# (12285, 14595), (17296, 18416), (63020, 76084), and (66928, 66992) + +my $limit = shift || 76084; + +# iterate over all numbers up to limit and sum their divisors +my %n; # hash of divisors sums, for example, $n{10} = 8 = 1+2+5 +my $n = 1; +while ($n <= $limit) { + my @d = divisors($n); + pop(@d); #discard self, for example the divisors of 10 are 1,2,5,10, so discard 10 + + map { $n{$n} += $_ } @d; + $n++; +} + +# search our hash for pairs, $p +foreach my $n (sort {$a <=> $b} (keys %n)) { + my $p = $n{$n}; + if ( exists($n{$p}) ) { + say "($n, $n{$n})" if ($n{$p} == $n and $p != $n); + delete $n{$n}; # so we don't match twice + } +} + +__END__ + +./ch-2.pl +(220, 284) +(1184, 1210) +(2620, 2924) +(5020, 5564) +(6232, 6368) +(10744, 10856) +(12285, 14595) +(17296, 18416) +(63020, 76084) +(66928, 66992) +(67095, 71145) + +./ch-2.pl 1000000 +(220, 284) +(1184, 1210) +(2620, 2924) +(5020, 5564) +(6232, 6368) +(10744, 10856) +(12285, 14595) +(17296, 18416) +(63020, 76084) +(66928, 66992) +(67095, 71145) +(69615, 87633) +(79750, 88730) +(100485, 124155) +(122265, 139815) +(122368, 123152) +(141664, 153176) +(142310, 168730) +(171856, 176336) +(176272, 180848) +(185368, 203432) +(196724, 202444) +(280540, 365084) +(308620, 389924) +(319550, 430402) +(356408, 399592) +(437456, 455344) +(469028, 486178) +(503056, 514736) +(522405, 525915) +(600392, 669688) +(609928, 686072) +(624184, 691256) +(635624, 712216) +(643336, 652664) +(667964, 783556) +(726104, 796696) +(802725, 863835) +(879712, 901424) +(898216, 980984) + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 8a51d37742..8a05156d84 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,55 +1,39 @@ { - "title" : { - "text" : "Perl Weekly Challenge - 020" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "chart" : { - "type" : "column" - }, - "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/>" - }, - "subtitle" : { - "text" : "[Champions: 3] Last updated at 2019-08-05 18:00:12 GMT" - }, "drilldown" : { "series" : [ { - "name" : "Dave Jacoby", "data" : [ [ "Perl 5", 2 ] ], + "name" : "Dave Jacoby", "id" : "Dave Jacoby" }, { - "id" : "Pete Houston", + "data" : [ + [ + "Perl 5", + 2 + ] + ], + "name" : "Duane Powell", + "id" : "Duane Powell" + }, + { "data" : [ [ "Perl 5", 1 ] ], + "id" : "Pete Houston", "name" : "Pete Houston" }, { + "name" : "Roger Bell West", + "id" : "Roger Bell West", "data" : [ [ "Perl 5", @@ -59,39 +43,70 @@ "Perl 6", 2 ] - ], - "name" : "Roger Bell West", - "id" : "Roger Bell West" + ] } ] }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "tooltip" : { + "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/>" + }, "legend" : { "enabled" : 0 }, + "subtitle" : { + "text" : "[Champions: 4] Last updated at 2019-08-05 18:06:22 GMT" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, "series" : [ { + "colorByPoint" : 1, "data" : [ { - "name" : "Dave Jacoby", "y" : 2, - "drilldown" : "Dave Jacoby" + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby" }, { + "name" : "Duane Powell", + "drilldown" : "Duane Powell", + "y" : 2 + }, + { + "drilldown" : "Pete Houston", "name" : "Pete Houston", - "y" : 1, - "drilldown" : "Pete Houston" + "y" : 1 }, { "y" : 4, - "drilldown" : "Roger Bell West", - "name" : "Roger Bell West" + "name" : "Roger Bell West", + "drilldown" : "Roger Bell West" } ], - "name" : "Perl Weekly Challenge - 020", - "colorByPoint" : 1 + "name" : "Perl Weekly Challenge - 020" } ], "xAxis" : { "type" : "category" + }, + "title" : { + "text" : "Perl Weekly Challenge - 020" + }, + "chart" : { + "type" : "column" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 3bf4694103..adb4479fd1 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,13 +1,4 @@ { - "xAxis" : { - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - }, - "type" : "category" - }, "series" : [ { "data" : [ @@ -17,7 +8,7 @@ ], [ "Perl 5", - 807 + 809 ], [ "Perl 6", @@ -26,27 +17,27 @@ ], "name" : "Contributions", "dataLabels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - }, - "align" : "right", - "enabled" : "true", "color" : "#FFFFFF", + "enabled" : "true", "format" : "{point.y:.0f}", - "rotation" : -90, - "y" : 10 + "align" : "right", + "y" : 10, + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "rotation" : -90 } } ], - "legend" : { - "enabled" : "false" - }, "yAxis" : { - "min" : 0, "title" : { "text" : null - } + }, + "min" : 0 + }, + "legend" : { + "enabled" : "false" }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" @@ -54,10 +45,19 @@ "title" : { "text" : "Perl Weekly Challenge Contributions - 2019" }, - "subtitle" : { - "text" : "Last updated at 2019-08-05 18:00:31 GMT" + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + } }, "chart" : { "type" : "column" + }, + "subtitle" : { + "text" : "Last updated at 2019-08-05 18:06:41 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index f7b4613e01..d0b836a350 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,115 +1,16 @@ { + "xAxis" : { + "type" : "category" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-08-05 18:06:41 GMT" + }, + "chart" : { + "type" : "column" + }, "legend" : { "enabled" : "false" }, - "series" : [ - { - "name" : "Perl Weekly Challenge Languages", - "colorByPoint" : "true", - "data" : [ - { - "drilldown" : "001", - "name" : "#001", - "y" : 123 - }, - { - "y" : 104, - "name" : "#002", - "drilldown" : "002" - }, - { - "name" : "#003", - "drilldown" : "003", - "y" : 66 - }, - { - "drilldown" : "004", - "name" : "#004", - "y" : 84 - }, - { - "drilldown" : "005", - "name" : "#005", - "y" : 66 - }, - { - "name" : "#006", - "drilldown" : "006", - "y" : 47 - }, - { - "y" : 54, - "name" : "#007", - "drilldown" : "007" - }, - { - "name" : "#008", - "drilldown" : "008", - "y" : 67 - }, - { - "y" : 65, - "drilldown" : "009", - "name" : "#009" - }, - { - "y" : 58, - "name" : "#010", - "drilldown" : "010" - }, - { - "name" : "#011", - "drilldown" : "011", - "y" : 77 - }, - { - "name" : "#012", - "drilldown" : "012", - "y" : 81 - }, - { - "drilldown" : "013", - "name" : "#013", - "y" : 74 - }, - { - "name" : "#014", - "drilldown" : "014", - "y" : 94 - }, - { - "name" : "#015", - "drilldown" : "015", - "y" : 90 - }, - { - "name" : "#016", - "drilldown" : "016", - "y" : 64 - }, - { - "y" : 77, - "drilldown" : "017", - "name" : "#017" - }, - { - "drilldown" : "018", - "name" : "#018", - "y" : 73 - }, - { - "drilldown" : "019", - "name" : "#019", - "y" : 92 - }, - { - "drilldown" : "020", - "name" : "#020", - "y" : 7 - } - ] - } - ], "plotOptions" : { "series" : { "borderWidth" : 0, @@ -119,6 +20,11 @@ } } }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, "drilldown" : { "series" : [ { @@ -140,6 +46,8 @@ ] }, { + "name" : "002", + "id" : "002", "data" : [ [ "Perl 5", @@ -153,9 +61,7 @@ "Blog", 9 ] - ], - "id" : "002", - "name" : "002" + ] }, { "name" : "003", @@ -176,7 +82,6 @@ "id" : "003" }, { - "name" : "004", "id" : "004", "data" : [ [ @@ -191,11 +96,10 @@ "Blog", 9 ] - ] + ], + "name" : "004" }, { - "name" : "005", - "id" : "005", "data" : [ [ "Perl 5", @@ -209,10 +113,11 @@ "Blog", 11 ] - ] + ], + "id" : "005", + "name" : "005" }, { - "name" : "006", "data" : [ [ "Perl 5", @@ -227,10 +132,11 @@ 6 ] ], - "id" : "006" + "id" : "006", + "name" : "006" }, { - "id" : "007", + "name" : "007", "data" : [ [ "Perl 5", @@ -245,7 +151,7 @@ 8 ] ], - "name" : "007" + "id" : "007" }, { "name" : "008", @@ -266,7 +172,6 @@ "id" : "008" }, { - "name" : "009", "data" : [ [ "Perl 5", @@ -281,10 +186,12 @@ 11 ] ], - "id" : "009" + "id" : "009", + "name" : "009" }, { "name" : "010", + "id" : "010", "data" : [ [ "Perl 5", @@ -298,12 +205,9 @@ "Blog", 9 ] - ], - "id" : "010" + ] }, { - "name" : "011", - "id" : "011", "data" : [ [ "Perl 5", @@ -317,9 +221,12 @@ "Blog", 8 ] - ] + ], + "id" : "011", + "name" : "011" }, { + "id" : "012", "data" : [ [ "Perl 5", @@ -334,7 +241,6 @@ 9 ] ], - "id" : "012", "name" : "012" }, { @@ -356,6 +262,7 @@ ] }, { + "id" : "014", "data" : [ [ "Perl 5", @@ -370,7 +277,6 @@ 13 ] ], - "id" : "014", "name" : "014" }, { @@ -392,6 +298,7 @@ ] }, { + "name" : "016", "id" : "016", "data" : [ [ @@ -406,8 +313,7 @@ "Blog", 10 ] - ], - "name" : "016" + ] }, { "name" : "017", @@ -429,7 +335,6 @@ }, { "name" : "018", - "id" : "018", "data" : [ [ "Perl 5", @@ -443,10 +348,10 @@ "Blog", 11 ] - ] + ], + "id" : "018" }, { - "name" : "019", "id" : "019", "data" : [ [ @@ -461,14 +366,15 @@ "Blog", 10 ] - ] + ], + "name" : "019" }, { "name" : "020", "data" : [ [ "Perl 5", - 5 + 7 ], [ "Perl 6", @@ -483,26 +389,120 @@ } ] }, - "xAxis" : { - "type" : "category" - }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-08-05 18:00:31 GMT" - }, - "chart" : { - "type" : "column" - }, - "tooltip" : { - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "followPointer" : "true" - }, + "series" : [ + { + "name" : "Perl Weekly Challenge Languages", + "colorByPoint" : "true", + "data" : [ + { + "name" : "#001", + "y" : 123, + "drilldown" : "001" + }, + { + "y" : 104, + "name" : "#002", + "drilldown" : "002" + }, + { + "name" : "#003", + "y" : 66, + "drilldown" : "003" + }, + { + "name" : "#004", + "y" : 84, + "drilldown" : "004" + }, + { + "drilldown" : "005", + "name" : "#005", + "y" : 66 + }, + { + "drilldown" : "006", + "y" : 47, + "name" : "#006" + }, + { + "drilldown" : "007", + "y" : 54, + "name" : "#007" + }, + { + "drilldown" : "008", + "y" : 67, + "name" : "#008" + }, + { + "y" : 65, + "name" : "#009", + "drilldown" : "009" + }, + { + "name" : "#010", + "y" : 58, + "drilldown" : "010" + }, + { + "drilldown" : "011", + "y" : 77, + "name" : "#011" + }, + { + "y" : 81, + "name" : "#012", + "drilldown" : "012" + }, + { + "y" : 74, + "name" : "#013", + "drilldown" : "013" + }, + { + "y" : 94, + "name" : "#014", + "drilldown" : "014" + }, + { + "drilldown" : "015", + "name" : "#015", + "y" : 90 + }, + { + "drilldown" : "016", + "y" : 64, + "name" : "#016" + }, + { + "drilldown" : "017", + "y" : 77, + "name" : "#017" + }, + { + "name" : "#018", + "y" : 73, + "drilldown" : "018" + }, + { + "name" : "#019", + "y" : 92, + "drilldown" : "019" + }, + { + "name" : "#020", + "y" : 9, + "drilldown" : "020" + } + ] + } + ], "title" : { "text" : "Perl Weekly Challenge Language" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "tooltip" : { + "headerFormat" : "<span style=\"font-size:11px\"></span>", + "followPointer" : "true", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" } } diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 11d480a938..a221366276 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -1,15 +1,31 @@ { + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "yAxis" : { + "title" : { + "text" : "Total Score" + } + }, + "xAxis" : { + "type" : "category" + }, "drilldown" : { "series" : [ { - "id" : "Joelle Maslak", "data" : [ [ - "Perl 6", + "Perl 5", 49 ], [ - "Perl 5", + "Perl 6", 49 ], [ @@ -17,45 +33,47 @@ 4 ] ], - "name" : "Joelle Maslak" + "name" : "Joelle Maslak", + "id" : "Joelle Maslak" }, { + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ - "Perl 6", - 37 - ], - [ "Blog", 24 ], [ + "Perl 6", + 37 + ], + [ "Perl 5", 38 ] - ], - "id" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" + ] }, { - "name" : "Jaldhar H. Vyas", - "id" : "Jaldhar H. Vyas", "data" : [ [ - "Perl 6", - 37 + "Blog", + 6 ], [ "Perl 5", 38 ], [ - "Blog", - 6 + "Perl 6", + 37 ] - ] + ], + "name" : "Jaldhar H. Vyas", + "id" : "Jaldhar H. Vyas" }, { + "id" : "Ruben Westerberg", "name" : "Ruben Westerberg", "data" : [ [ @@ -66,40 +84,39 @@ "Perl 6", 35 ] - ], - "id" : "Ruben Westerberg" + ] }, { - "name" : "Athanasius", "data" : [ [ - "Perl 6", - 17 + "Blog", + 3 ], [ "Perl 5", 41 ], [ - "Blog", - 3 + "Perl 6", + 17 ] ], - "id" : "Athanasius" + "id" : "Athanasius", + "name" : "Athanasius" }, { - "name" : "Adam Russell", - "id" : "Adam Russell", "data" : [ [ - "Perl 5", - 39 - ], - [ "Blog", 19 + ], + [ + "Perl 5", + 39 ] - ] + ], + "name" : "Adam Russell", + "id" : "Adam Russell" }, { "data" : [ @@ -112,11 +129,10 @@ 35 ] ], - "id" : "Arne Sommer", - "name" : "Arne Sommer" + "name" : "Arne Sommer", + "id" : "Arne Sommer" }, { - "name" : "E. Choroba", "data" : [ [ "Perl 5", @@ -127,11 +143,12 @@ 16 ] ], - "id" : "E. Choroba" + "id" : "E. Choroba", + "name" : "E. Choroba" }, { - "name" : "Francis Whittle", "id" : "Francis Whittle", + "name" : "Francis Whittle", "data" : [ [ "Blog", @@ -146,23 +163,22 @@ { "data" : [ [ + "Blog", + 16 + ], + [ "Perl 6", 1 ], [ "Perl 5", 25 - ], - [ - "Blog", - 16 ] ], "id" : "Dave Jacoby", "name" : "Dave Jacoby" }, { - "id" : "Kian-Meng Ang", "data" : [ [ "Perl 5", @@ -173,11 +189,10 @@ 11 ] ], + "id" : "Kian-Meng Ang", "name" : "Kian-Meng Ang" }, { - "name" : "Simon Proctor", - "id" : "Simon Proctor", "data" : [ [ "Perl 6", @@ -191,17 +206,19 @@ "Blog", 7 ] - ] + ], + "id" : "Simon Proctor", + "name" : "Simon Proctor" }, { - "id" : "Andrezgz", "data" : [ [ "Perl 5", 36 ] ], - "name" : "Andrezgz" + "name" : "Andrezgz", + "id" : "Andrezgz" }, { "name" : "Feng Chang", @@ -219,135 +236,135 @@ }, { "id" : "Yozen Hernandez", + "name" : "Yozen Hernandez", "data" : [ [ - "Perl 5", - 21 - ], - [ "Blog", 14 + ], + [ + "Perl 5", + 21 ] - ], - "name" : "Yozen Hernandez" + ] }, { "name" : "Gustavo Chaves", "id" : "Gustavo Chaves", "data" : [ [ - "Perl 5", - 30 - ], - [ "Blog", 4 + ], + [ + "Perl 5", |
