diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-01-18 10:10:55 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-01-18 10:10:55 +0000 |
| commit | 4c0094aa3f456810b1795784caa1fe06fbdacb5c (patch) | |
| tree | 0616d18acfbde59cf646ad96aa3026406ac59fac | |
| parent | edc1508ae2836e3fcee6c84b851071485441be60 (diff) | |
| download | perlweeklychallenge-club-4c0094aa3f456810b1795784caa1fe06fbdacb5c.tar.gz perlweeklychallenge-club-4c0094aa3f456810b1795784caa1fe06fbdacb5c.tar.bz2 perlweeklychallenge-club-4c0094aa3f456810b1795784caa1fe06fbdacb5c.zip | |
- Added solutions by Peter Campbell Smith.
| -rwxr-xr-x | challenge-148/peter-campbell-smith/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-148/peter-campbell-smith/perl/ch-1.pl | 71 | ||||
| -rwxr-xr-x | challenge-148/peter-campbell-smith/perl/ch-2.pl | 59 | ||||
| -rw-r--r-- | stats/pwc-challenge-147.json | 628 | ||||
| -rw-r--r-- | stats/pwc-current.json | 615 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 76 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 2043 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 764 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 96 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 104 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 104 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 112 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 32 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 94 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 96 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 104 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 32 |
18 files changed, 2644 insertions, 2423 deletions
diff --git a/challenge-148/peter-campbell-smith/blog.txt b/challenge-148/peter-campbell-smith/blog.txt new file mode 100755 index 0000000000..da3f74d055 --- /dev/null +++ b/challenge-148/peter-campbell-smith/blog.txt @@ -0,0 +1 @@ +https://pjcs-pwc.blogspot.com/2022/01/numbers-in-words-and-cardano-triplets.html diff --git a/challenge-148/peter-campbell-smith/perl/ch-1.pl b/challenge-148/peter-campbell-smith/perl/ch-1.pl new file mode 100755 index 0000000000..f83ffb097b --- /dev/null +++ b/challenge-148/peter-campbell-smith/perl/ch-1.pl @@ -0,0 +1,71 @@ +#!/usr/bin/perl + +# Peter Campbell Smith - 2022-01-17 +# PWC 148 task 1 + +use v5.28; +use strict; +use warnings; +use utf8; + +# Write a script to generate all Eban Numbers <= 100. +# An Eban number is a number that has no letter ‘e’ in it when the number is spelled +# in English (American or British) + +my ($j, $words, @digits, @tenties, @teens); +@digits = ((''), qw[one two three four five six seven eight nine]); +@tenties = (('', ''), qw[twenty thirty forty fifty sixty seventy eighty ninety]); +@teens = qw[ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen]; + +# the easy bit +say qq[\nAll Eban Numbers <= 100]; +for $j (1 .. 100) { + $words = words($j); + say qq[$j - $words] unless $words =~ m|e|; +} + +# convert an integer to words (works up to 999,999) +sub words { + + my ($number, $thousands, $words); + $number = $_[0]; + + # deal with thousands + $thousands = int($number / 1000); + $words = $thousands != 0 ? words3($thousands) . ' thousand' : ''; + + # and the rest + $number -= $thousands * 1000; + $words = $words . ' and' if ($thousands != 0 and $number < 100 and $number != 0); + $words = $words . words3($number); + $words =~ s|.||; # remove initial blank + return $words; +} + +sub words3 { + + # convert 1-999 into words + my ($number, $hundreds, $words3, $tens, $units, $hyphen); + return 'zero' unless $number = $_[0]; + $words3 = ''; + + # hundreds + $hundreds = int($number / 100); + $words3 = $words3 . ' ' . $digits[$hundreds] . ' hundred' if $hundreds != 0; + $number -= $hundreds * 100; + if ($number) { + $words3 = $words3 . ' and' if $hundreds != 0; + + # tens and units + $tens = int($number / 10); + $units = $number - 10 * $tens; + if ($tens != 1) { + $hyphen = ($units != 0 and $tens != 0) ? '-' : ''; + $words3 = $words3 . ' ' . $tenties[$tens] . $hyphen . $digits[$units]; + } else { + $words3 = $words3 . ' ' . $teens[$units]; + } + } + + return $words3; +} diff --git a/challenge-148/peter-campbell-smith/perl/ch-2.pl b/challenge-148/peter-campbell-smith/perl/ch-2.pl new file mode 100755 index 0000000000..08346b8c70 --- /dev/null +++ b/challenge-148/peter-campbell-smith/perl/ch-2.pl @@ -0,0 +1,59 @@ +#!/usr/bin/perl + +# Peter Campbell Smith - 2022-01-10 +# PWC 148 task 2 + +use v5.28; +use warnings; +use strict; +use utf8; + +# Write a script to generate first 5 Cardano Triplets. (Let's assume that 'first 5' means +# first 5 ordered by a + b + c.) + +# A triplet of positive integers (a,b,c) is called a Cardano Triplet +# if it satisfies: +# cube_root(a + b * sqrt(c)) + cube_root(a - b * sqrt(c)) = 1 + +my ($a, $b, $c, $sqrt_c, %results, $cardano, $sum, $answer, $term1, $term2, $j, $b_sqrt_c); + +# try 1 million possibilities - probably overkill! +for $c (1 .. 100) { + $sqrt_c = sqrt($c); + for $b (1 .. 100) { + $b_sqrt_c = $b * $sqrt_c; + for $a (1 .. 100) { + + # need to allow for imprecision in floating point operations + $term1 = cbrt($a + $b_sqrt_c); + $term2 = cbrt($a - $b_sqrt_c); + if (abs($term1 + $term2 - 1) < 1e-10) { + $results{sprintf('%06d¦%s', $a + $b + $c, + qq[$a, $b, $c :: $term1 + $term2 = 1])} = 1; + } + } + } +} + +# sort and print results in ascending order of a + b + c +$j = 0; +say qq[\nFirst 5 Cardano triplets]; +for $cardano (sort keys %results) { + ($sum, $answer) = split('¦', $cardano); + say $answer; + say qq[\n... and some more] if ++$j == 5; +} + + +sub cbrt { + + # cube root + my $arg = $_[0]; + if ($arg >= 0) { + return $arg ** (1 / 3); + + # cube root of -x is minus cube root of x + } else { + return -((-$arg) ** (1 / 3)); + } +}
\ No newline at end of file diff --git a/stats/pwc-challenge-147.json b/stats/pwc-challenge-147.json new file mode 100644 index 0000000000..b7456c1a29 --- /dev/null +++ b/stats/pwc-challenge-147.json @@ -0,0 +1,628 @@ +{ + "legend" : { + "enabled" : 0 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "xAxis" : { + "type" : "category" + }, + "series" : [ + { + "name" : "The Weekly Challenge - 147", + "colorByPoint" : 1, + "data" : [ + { + "drilldown" : "Abigail", + "name" : "Abigail", + "y" : 4 + }, + { + "name" : "Adam Russell", + "drilldown" : "Adam Russell", + "y" : 4 + }, + { + "y" : 1, + "drilldown" : "Alexander Karelas", + "name" : "Alexander Karelas" + }, + { + "y" : 2, + "drilldown" : "Alexander Pankoff", + "name" : "Alexander Pankoff" + }, + { + "name" : "Arne Sommer", + "drilldown" : "Arne Sommer", + "y" : 5 + }, + { + "y" : 4, + "drilldown" : "Athanasius", + "name" : "Athanasius" + }, + { + "drilldown" : "Bruce Gray", + "name" : "Bruce Gray", + "y" : 5 + }, + { + "y" : 2, + "name" : "Cheok-Yin Fung", + "drilldown" : "Cheok-Yin Fung" + }, + { + "y" : 2, + "name" : "Colin Crain", + "drilldown" : "Colin Crain" + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 3 + }, + { + "y" : 2, + "drilldown" : "Duncan C. White", + "name" : "Duncan C. White" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Flavio Poletti", + "name" : "Flavio Poletti", + "y" : 6 + }, + { + "y" : 5, + "drilldown" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas" + }, + { + "drilldown" : "James Smith", + "name" : "James Smith", + "y" : 3 + }, + { + "y" : 1, + "drilldown" : "Jan Krnavek", + "name" : "Jan Krnavek" + }, + { + "drilldown" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", + "y" : 5 + }, + { + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari", + "y" : 7 + }, + { + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson", + "y" : 2 + }, + { + "drilldown" : "Mark Senn", + "name" : "Mark Senn", + "y" : 4 + }, + { + "y" : 2, + "name" : "Marton Polgar", + "drilldown" : "Marton Polgar" + }, + { + "name" : "Matthew Neleigh", + "drilldown" : "Matthew Neleigh", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar" + }, + { + "y" : 2, + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "y" : 2, + "drilldown" : "Pete Houston", + "name" : "Pete Houston" + }, + { + "name" : "Peter Campbell Smith", + "drilldown" : "Peter Campbell Smith", + "y" : 3 + }, + { + "name" : "Roger Bell_West", + "drilldown" : "Roger Bell_West", + "y" : 5 + }, + { + "y" : 3, + "drilldown" : "Simon Green", + "name" : "Simon Green" + }, + { + "y" : 2, + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor" + }, + { + "y" : 2, + "name" : "Steven Wilson", + "drilldown" : "Steven Wilson" + }, + { + "y" : 4, + "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke" + }, + { + "y" : 3, + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan" + } + ] + } + ], + "drilldown" : { + "series" : [ + { + "name" : "Abigail", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] + ], + "id" : "Abigail" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] + ], + "id" : "Adam Russell", + "name" : "Adam Russell" + }, + { + "name" : "Alexander Karelas", + "id" : "Alexander Karelas", + "data" : [ + [ + "Perl", + 1 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Alexander Pankoff", + "name" : "Alexander Pankoff" + }, + { + "name" : "Arne Sommer", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Arne Sommer" + }, + { + "name" : "Athanasius", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Athanasius" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Bruce Gray", + "name" : "Bruce Gray" + }, + { + "data" : [ + [ + "Perl", + 1 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Cheok-Yin Fung", + "name" : "Cheok-Yin Fung" + }, + { + "id" : "Colin Crain", + "data" : [ + [ + "Perl", + 2 + ] + ], + "name" : "Colin Crain" + }, + { + "name" : "Dave Jacoby", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Dave Jacoby" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Duncan C. White", + "name" : "Duncan C. White" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "name" : "Flavio Poletti", + "id" : "Flavio Poletti", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 2 + ] + ] + }, + { + "name" : "Jaldhar H. Vyas", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Jaldhar H. Vyas" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "James Smith", + "name" : "James Smith" + }, + { + "data" : [ + [ + "Raku", + 1 + ] + ], + "id" : "Jan Krnavek", + "name" : "Jan Krnavek" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld" + }, + { + "name" : "Luca Ferrari", + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 5 + ] + ], + "id" : "Luca Ferrari" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "id" : "Mark Senn", + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 2 + ] + ], + "name" : "Mark Senn" + }, + { + "name" : "Marton Polgar", + "id" : "Marton Polgar", + "data" : [ + [ + "Raku", + 2 + ] + ] + }, + { + "id" : "Matthew Neleigh", + "data" : [ + [ + "Perl", + 2 + ] + ], + "name" : "Matthew Neleigh" + }, + { + "name" : "Mohammad S Anwar", + "data" : [ + [ + "Perl", + 1 + ], + [ + "Raku", + 1 + ] + ], + "id" : "Mohammad S Anwar" + }, + { + "name" : "Niels van Dijke", + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Niels van Dijke" + }, + { + "name" : "Pete Houston", + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Pete Houston" + }, + { + "id" : "Peter Campbell Smith", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Peter Campbell Smith" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Roger Bell_West", + "name" : "Roger Bell_West" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Simon Green", + "name" : "Simon Green" + }, + { + "name" : "Simon Proctor", + "id" : "Simon Proctor", + "data" : [ + [ + "Raku", + 2 + ] + ] + }, + { + "name" : "Steven Wilson", + "id" : "Steven Wilson", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { + "id" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "name" : "Ulrich Rieke" + }, + { + "name" : "W. Luis Mochan", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "W. Luis Mochan" + } + ] + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "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/>" + }, + "title" : { + "text" : "The Weekly Challenge - 147" + }, + "subtitle" : { + "text" : "[Champions: 32] Last updated at 2022-01-18 10:05:36 GMT" + }, + "chart" : { + "type" : "column" + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index cdb8c57103..f5944ed26f 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,523 +1,51 @@ { + "xAxis" : { + "type" : "category" + }, + "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 + }, "subtitle" : { - "text" : "[Champions: 32] Last updated at 2022-01-18 09:01:06 GMT" + "text" : "[Champions: 1] Last updated at 2022-01-18 10:08:54 GMT" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 } }, "series" : [ { "colorByPoint" : 1, + "name" : "The Weekly Challenge - 148", "data" : [ { - "name" : "Abigail", - "y" : 4, - "drilldown" : "Abigail" - }, - { - "drilldown" : "Adam Russell", - "name" : "Adam Russell", - "y" : 4 - }, - { - "name" : "Alexander Karelas", - "y" : 1, - "drilldown" : "Alexander Karelas" - }, - { - "name" : "Alexander Pankoff", - "y" : 2, - "drilldown" : "Alexander Pankoff" - }, - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 5 - }, - { - "y" : 4, - "name" : "Athanasius", - "drilldown" : "Athanasius" - }, - { - "drilldown" : "Bruce Gray", - "y" : 5, - "name" : "Bruce Gray" - }, - { - "drilldown" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung", - "y" : 2 - }, - { - "drilldown" : "Colin Crain", - "name" : "Colin Crain", - "y" : 2 - }, - { - "y" : 3, - "name" : "Dave Jacoby", - "drilldown" : "Dave Jacoby" - }, - { - "drilldown" : "Duncan C. White", - "name" : "Duncan C. White", - "y" : 2 - }, - { - "name" : "E. Choroba", - "y" : 2, - "drilldown" : "E. Choroba" - }, - { - "drilldown" : "Flavio Poletti", - "name" : "Flavio Poletti", - "y" : 6 - }, - { - "name" : "Jaldhar H. Vyas", - "y" : 5, - "drilldown" : "Jaldhar H. Vyas" - }, - { - "y" : 3, - "name" : "James Smith", - "drilldown" : "James Smith" - }, - { - "name" : "Jan Krnavek", - "y" : 1, - "drilldown" : "Jan Krnavek" - }, - { - "drilldown" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld", - "y" : 5 - }, - { - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari", - "y" : 7 - }, - { - "name" : "Mark Anderson", - "y" : 2, - "drilldown" : "Mark Anderson" - }, - { - "drilldown" : "Mark Senn", - "y" : 4, - "name" : "Mark Senn" - }, - { - "drilldown" : "Marton Polgar", - "name" : "Marton Polgar", - "y" : 2 - }, - { - "y" : 2, - "name" : "Matthew Neleigh", - "drilldown" : "Matthew Neleigh" - }, - { - "y" : 2, - "name" : "Mohammad S Anwar", - "drilldown" : "Mohammad S Anwar" - }, - { - "y" : 2, - "name" : "Niels van Dijke", - "drilldown" : "Niels van Dijke" - }, - { - "y" : 2, - "name" : "Pete Houston", - "drilldown" : "Pete Houston" - }, - { - "drilldown" : "Peter Campbell Smith", "name" : "Peter Campbell Smith", - "y" : 3 - }, - { - "drilldown" : "Roger Bell_West", - "y" : 5, - "name" : "Roger Bell_West" - }, - { - "drilldown" : "Simon Green", - "name" : "Simon Green", - "y" : 3 - }, - { - "drilldown" : "Simon Proctor", - "y" : 2, - "name" : "Simon Proctor" - }, - { - "drilldown" : "Steven Wilson", - "y" : 2, - "name" : "Steven Wilson" - }, - { - "y" : 4, - "name" : "Ulrich Rieke", - "drilldown" : "Ulrich Rieke" - }, - { - "name" : "W. Luis Mochan", "y" : 3, - "drilldown" : "W. Luis Mochan" + "drilldown" : "Peter Campbell Smith" } - ], - "name" : "The Weekly Challenge - 147" + ] } ], - "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/>" + "legend" : { + "enabled" : 0 }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 + "yAxis" : { + "title" : { + "text" : "Total Solutions" } }, + "title" : { + "text" : "The Weekly Challenge - 148" + }, "drilldown" : { "series" : [ { - "name" : "Abigail", - "id" : "Abigail", - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 2 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 2 - ] - ], - "name" : "Adam Russell", - "id" : "Adam Russell" - }, - { - "data" : [ - [ - "Perl", - 1 - ] - ], - "id" : "Alexander Karelas", - "name" : "Alexander Karelas" - }, - { - "name" : "Alexander Pankoff", - "id" : "Alexander Pankoff", - "data" : [ - [ - "Perl", - 2 - ] - ] - }, - { - "name" : "Arne Sommer", - "id" : "Arne Sommer", - "data" : [ - [ - "Perl", - 2 - |
