diff options
| author | Luis Mochan <mochan@fis.unam.mx> | 2021-04-19 11:28:33 -0500 |
|---|---|---|
| committer | Luis Mochan <mochan@fis.unam.mx> | 2021-04-19 11:28:33 -0500 |
| commit | 007b4954ca4f152bddea1a6cc599dab818b98bff (patch) | |
| tree | 71da7cae7c885de71c8eea2867b047cd9fc9c0b6 | |
| parent | d30f1262dfa6614f5059117f7a33644ee976f0aa (diff) | |
| parent | 40f0a1aaa2661139bbf5ef0cba19156aa4201d8d (diff) | |
| download | perlweeklychallenge-club-007b4954ca4f152bddea1a6cc599dab818b98bff.tar.gz perlweeklychallenge-club-007b4954ca4f152bddea1a6cc599dab818b98bff.tar.bz2 perlweeklychallenge-club-007b4954ca4f152bddea1a6cc599dab818b98bff.zip | |
Merge branch 'master' of github.com:manwar/perlweeklychallenge-club into challenges
| -rw-r--r-- | challenge-109/mohammad-anwar/perl/ch-1.pl | 29 | ||||
| -rw-r--r-- | challenge-109/sgreen/README.md | 4 | ||||
| -rwxr-xr-x | challenge-109/sgreen/perl/ch-1.pl | 29 | ||||
| -rwxr-xr-x | challenge-109/sgreen/perl/ch-2.pl | 71 | ||||
| -rw-r--r-- | stats/pwc-challenge-108.json | 590 | ||||
| -rw-r--r-- | stats/pwc-current.json | 596 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 48 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1541 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 774 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 52 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 78 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 108 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 50 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 484 |
18 files changed, 2507 insertions, 2247 deletions
diff --git a/challenge-109/mohammad-anwar/perl/ch-1.pl b/challenge-109/mohammad-anwar/perl/ch-1.pl new file mode 100644 index 0000000000..9b60e0d6d1 --- /dev/null +++ b/challenge-109/mohammad-anwar/perl/ch-1.pl @@ -0,0 +1,29 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Test::More; +use Test::Deep; + +is_deeply( top_chowla_number(20), + [ 0, 0, 0, 2, 0, + 5, 0, 6, 3, 7, + 0, 15, 0, 9, 8, + 14, 0, 20, 0, 21, ] ); + +done_testing; + +sub top_chowla_number { + my ($count) = @_; + + return [ map { chowla_number($_) } 1 .. $count ]; +} + +sub chowla_number { + my ($n) = @_; + + my $sd = 0; + map { $sd += $_ if $n % $_ == 0 } 2 .. $n/2; + return $sd; +} diff --git a/challenge-109/sgreen/README.md b/challenge-109/sgreen/README.md index f23432ca89..94ad2ed1db 100644 --- a/challenge-109/sgreen/README.md +++ b/challenge-109/sgreen/README.md @@ -1,3 +1,3 @@ -# The Weekly Challenge 108 +# The Weekly Challenge 109 -Solution by Simon Green. [Blog](https://dev.to/simongreennet/weekly-challenge-108-3di2) +Solution by Simon Green. [Blog]() diff --git a/challenge-109/sgreen/perl/ch-1.pl b/challenge-109/sgreen/perl/ch-1.pl new file mode 100755 index 0000000000..69df6c10f7 --- /dev/null +++ b/challenge-109/sgreen/perl/ch-1.pl @@ -0,0 +1,29 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use feature 'say'; + +use List::Util 'sum'; + +sub _divisors { + my $number = shift; + my @divisors = (0); + + for my $i ( 2 .. $number / 2 ) { + if ( $number % $i == 0 ) { + # This number is a divisor + push @divisors, $i; + } + } + + # Return the sum of the unique divisors + return sum(@divisors); +} + +sub main { + my $numbers = shift // 20; + say join ', ', map { _divisors($_) } ( 1 .. $numbers ); +} + +main(@ARGV); diff --git a/challenge-109/sgreen/perl/ch-2.pl b/challenge-109/sgreen/perl/ch-2.pl new file mode 100755 index 0000000000..a754e34610 --- /dev/null +++ b/challenge-109/sgreen/perl/ch-2.pl @@ -0,0 +1,71 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use feature 'say'; + +use List::Util 'sum'; + +sub _get_permutations { + # A little recursive function to generate all permutations of the + # sets of numbers. + my ( $remaining, $used ) = @_; + my @permutations = (); + + if ( $#$remaining == 0 ) { + # We have a new permutation + return [ @$used, @$remaining ]; + } + + for my $i ( 0 .. $#$remaining ) { + # Use one of the remaining numbers (in the order of the array), + # any recursively call this function + my @new_used = ( @$used, $remaining->[$i] ); + my @new_remaining = @$remaining; + splice( @new_remaining, $i, 1 ); + push @permutations, _get_permutations( \@new_remaining, \@new_used ); + } + + return @permutations; + +} + +sub main { + my @numbers = @_; + + # Sanity check + die "You must specify seven numbers\n" unless scalar(@numbers) == 7; + foreach (@numbers) { + die "$_ is not a number\n" unless /^\d+(?:\.\d+)?/; + } + + # Define the values in each box + my @boxes = ( [ 0, 1 ], [ 1, 2, 3 ], [ 3, 4, 5 ], [ 5, 6 ] ); + + # Generate all permatations. There is only 5,040 of them + my @permutations = _get_permutations( [@numbers], [] ); + + P: foreach my $permutation (@permutations) { + # Calculate the sums for each box in this permutation + my @sums = (); + foreach my $box (@boxes) { + push @sums, sum( @$permutation[@$box] ); + + # This permutation is not the correct one + next P if $sums[-1] != $sums[0]; + } + + # We have a solution! Print the results and exit + my $letter = 'a'; + foreach my $n (@$permutation) { + say "$letter = $n"; + ++$letter; + } + + return; + } + + say 'No solution found!'; +} + +main(@ARGV); diff --git a/stats/pwc-challenge-108.json b/stats/pwc-challenge-108.json new file mode 100644 index 0000000000..450dd1387d --- /dev/null +++ b/stats/pwc-challenge-108.json @@ -0,0 +1,590 @@ +{ + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category" + }, + "legend" : { + "enabled" : 0 + }, + "subtitle" : { + "text" : "[Champions: 30] Last updated at 2021-04-19 16:08:44 GMT" + }, + "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 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, + "series" : [ + { + "name" : "Perl Weekly Challenge - 108", + "colorByPoint" : 1, + "data" : [ + { + "drilldown" : "Aaron Smith", + "y" : 3, + "name" : "Aaron Smith" + }, + { + "y" : 4, + "name" : "Abigail", + "drilldown" : "Abigail" + }, + { + "drilldown" : "Adam Russell", + "y" : 4, + "name" : "Adam Russell" + }, + { + "drilldown" : "Arne Sommer", + "y" : 5, + "name" : "Arne Sommer" + }, + { + "name" : "Athanasius", + "y" : 3, + "drilldown" : "Athanasius" + }, + { + "name" : "Cheok-Yin Fung", + "y" : 1, + "drilldown" : "Cheok-Yin Fung" + }, + { + "y" : 5, + "name" : "Colin Crain", + "drilldown" : "Colin Crain" + }, + { + "y" : 2, + "name" : "Daniel Bowling", + "drilldown" : "Daniel Bowling" + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 3 + }, + { + "drilldown" : "Duncan C. White", + "y" : 2, + "name" : "Duncan C. White" + }, + { + "drilldown" : "E. Choroba", + "name" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Flavio Poletti", + "y" : 4, + "name" : "Flavio Poletti" + }, + { + "drilldown" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas", + "y" : 5 + }, + { + "y" : 2, + "name" : "James Smith", + "drilldown" : "James Smith" + }, + { + "drilldown" : "Jan Krnavek", + "name" : "Jan Krnavek", + "y" : 2 + }, + { + "y" : 2, + "name" : "Joan Mimosinnet", + "drilldown" : "Joan Mimosinnet" + }, + { + "y" : 2, + "name" : "Jorg Sommrey", + "drilldown" : "Jorg Sommrey" + }, + { + "y" : 5, + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld" + }, + { + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari", + "y" : 4 + }, + { + "drilldown" : "Mark Anderson", + "y" : 2, + "name" : "Mark Anderson" + }, + { + "y" : 4, + "name" : "Mohammad S Anwar", + "drilldown" : "Mohammad S Anwar" + }, + { + "name" : "Niels van Dijke", + "y" : 2, + "drilldown" : "Niels van Dijke" + }, + { + "name" : "Pete Houston", + "y" : 2, + "drilldown" : "Pete Houston" + }, + { + "drilldown" : "Roger Bell_West", + "y" : 5, + "name" : "Roger Bell_West" + }, + { + "drilldown" : "Simon Green", + "y" : 3, + "name" : "Simon Green" + }, + { + "name" : "Simon Proctor", + "y" : 1, + "drilldown" : "Simon Proctor" + }, + { + "drilldown" : "Stuart Little", + "name" : "Stuart Little", + "y" : 4 + }, + { + "y" : 4, + "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke" + }, + { + "name" : "W. Luis Mochan", + "y" : 3, + "drilldown" : "W. Luis Mochan" + }, + { + "y" : 2, + "name" : "Wanderdoc", + "drilldown" : "Wanderdoc" + } + ] + } + ], + "drilldown" : { + "series" : [ + { + "name" : "Aaron Smith", + "id" : "Aaron Smith", + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { + "name" : "Abigail", + "id" : "Abigail", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] + ], + "name" : "Adam Russell", + "id" : "Adam Russell" + }, + { + "id" : "Arne Sommer", + "name" : "Arne Sommer", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 1 + ] + ], + "id" : "Athanasius", + "name" : "Athanasius" + }, + { + "name" : "Cheok-Yin Fung", + "id" : "Cheok-Yin Fung", + "data" : [ + [ + "Perl", + 1 + ] + ] + }, + { + "name" : "Colin Crain", + "id" : "Colin Crain", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { + "data" : [ + [ + "Raku", + 1 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Daniel Bowling", + "id" : "Daniel Bowling" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Dave Jacoby", + "id" : "Dave Jacoby" + }, + { + "name" : "Duncan C. White", + "id" : "Duncan C. White", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { + "id" : "E. Choroba", + "name" : "E. Choroba", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { + "name" : "Flavio Poletti", + "id" : "Flavio Poletti", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] + ] + }, + { + "name" : "Jaldhar H. Vyas", + "id" : "Jaldhar H. Vyas", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { + "name" : "James Smith", + "id" : "James Smith", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { + "id" : "Jan Krnavek", + "name" : "Jan Krnavek", + "data" : [ + [ + "Raku", + 2 + ] + ] + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Joan Mimosinnet", + "name" : "Joan Mimosinnet" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Jorg Sommrey", + "name" : "Jorg Sommrey" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Laurent Rosenfeld", + "id" : "Laurent Rosenfeld" + }, + { + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 2 + ] + ], + "id" : "Luca Ferrari", + "name" : "Luca Ferrari" + }, + { + "name" : "Mark Anderson", + "id" : "Mark Anderson", + "data" : [ + [ + "Raku", + 2 + ] + ] + }, + { + "name" : "Mohammad S Anwar", + "id" : "Mohammad S Anwar", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] + ] + }, + { + "id" : "Niels van Dijke", + "name" : "Niels van Dijke", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Pete Houston", + "name" : "Pete Houston" + }, + { + "name" : "Roger Bell_West", + "id" : "Roger Bell_West", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Simon Green", + "id" : "Simon Green" + }, + { + "id" : "Simon Proctor", + "name" : "Simon Proctor", + "data" : [ + [ + "Raku", + 1 + ] + ] + }, + { + "id" : "Stuart Little", + "name" : "Stuart Little", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "name" : "W. Luis Mochan", + "id" : "W. Luis Mochan", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { + "name" : "Wanderdoc", + "id" : "Wanderdoc", + "data" : [ + [ + "Perl", + 2 + ] + ] + } + ] + }, + "title" : { + "text" : "Perl Weekly Challenge - 108" + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index f43b84dcc1..e3b338d71a 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -2,589 +2,107 @@ "chart" : { "type" : "column" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "legend" : { + "enabled" : 0 }, - "series" : [ - { - "colorByPoint" : 1, - "data" : [ - { - "y" : 3, - "name" : "Aaron Smith", - "drilldown" : "Aaron Smith" - }, - { - "drilldown" : "Abigail", - "y" : 4, - "name" : "Abigail" - }, - { - "drilldown" : "Adam Russell", - "y" : 4, - "name" : "Adam Russell" - }, - { - "drilldown" : "Arne Sommer", - "y" : 5, - "name" : "Arne Sommer" - }, - { - "y" : 3, - "name" : "Athanasius", - "drilldown" : "Athanasius" - }, - { - "name" : "Cheok-Yin Fung", - "y" : 1, - "drilldown" : "Cheok-Yin Fung" - }, - { - "name" : "Colin Crain", - "y" : 5, - "drilldown" : "Colin Crain" - }, - { - "drilldown" : "Daniel Bowling", - "name" : "Daniel Bowling", - "y" : 2 - }, - { - "name" : "Dave Jacoby", - "y" : 3, - "drilldown" : "Dave Jacoby" - }, - { - "name" : "Duncan C. White", - "y" : 2, - "drilldown" : "Duncan C. White" - }, - { - "y" : 2, - "name" : "E. Choroba", - "drilldown" : "E. Choroba" - }, - { - "name" : "Flavio Poletti", - "y" : 4, - "drilldown" : "Flavio Poletti" - }, - { - "drilldown" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas", - "y" : 5 - }, - { - "drilldown" : "James Smith", - "y" : 2, - "name" : "James Smith" - }, - { - "name" : "Jan Krnavek", - "y" : 2, - "drilldown" : "Jan Krnavek" - }, - { - "name" : "Joan Mimosinnet", - "y" : 2, - "drilldown" : "Joan Mimosinnet" - }, - { - "y" : 2, - "name" : "Jorg Sommrey", - "drilldown" : "Jorg Sommrey" - }, - { - "drilldown" : "Laurent Rosenfeld", - "y" : 5, - "name" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Luca Ferrari", - "y" : 4, - "name" : "Luca Ferrari" - }, - { - "drilldown" : "Mark Anderson", - "y" : 2, - "name" : "Mark Anderson" - }, - { - "y" : 4, - "name" : "Mohammad S Anwar", - "drilldown" : "Mohammad S Anwar" - }, - { - "name" : "Niels van Dijke", - "y" : 2, - "drilldown" : "Niels van Dijke" - }, - { - "drilldown" : "Pete Houston", - "name" : "Pete Houston", - "y" : 2 - }, - { - "y" : 5, - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West" - }, - { - "drilldown" : "Simon Green", - "name" : "Simon Green", - "y" : 3 - }, - { - "name" : "Simon Proctor", - "y" : 1, - "drilldown" : "Simon Proctor" - }, - { - "drilldown" : "Stuart Little", - "y" : 4, - "name" : "Stuart Little" - }, - { - "drilldown" : "Ulrich Rieke", - "y" : 4, - "name" : "Ulrich Rieke" - }, - { - "drilldown" : "W. Luis Mochan", - "y" : 3, - "name" : "W. Luis Mochan" - }, - { - "drilldown" : "Wanderdoc", - "y" : 2, - "name" : "Wanderdoc" - } - ], - "name" : "Perl Weekly Challenge - 108" - } - ], - "title" : { - "text" : "Perl Weekly Challenge - 108" + "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 }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { "format" : "{point.y}", "enabled" : 1 - }, - "borderWidth" : 0 + } } }, - "subtitle" : { - "text" : "[Champions: 30] Last updated at 2021-04-19 05:28:52 GMT" - }, - "xAxis" : { - "type" : "category" - }, - "tooltip" : { - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", - "followPointer" : 1, - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" - }, "drilldown" : { "series" : [ { - "name" : "Aaron Smith", - "id" : "Aaron Smith", - "data" : [ - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ] - }, - { - "id" : "Abigail", - "name" : "Abigail", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 2 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 2 - ] - ], - "name" : "Adam Russell", - "id" : "Adam Russell" - }, - { - "name" : "Arne Sommer", - "id" : "Arne Sommer", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 1 - ] - ], - "name" : "Athanasius", - "id" : "Athanasius" - }, - { - "data" : [ - [ - "Perl", - 1 - ] - ], - "id" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "name" : "Colin Crain", - "id" : "Colin Crain" - }, - { - "data" : [ - [ - "Raku", - 1 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Daniel Bowling", |
