diff options
| -rw-r--r-- | challenge-133/laurent-rosenfeld/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-133/laurent-rosenfeld/perl/ch-1.pl | 23 | ||||
| -rw-r--r-- | challenge-133/laurent-rosenfeld/perl/ch-2.pl | 57 | ||||
| -rw-r--r-- | challenge-133/laurent-rosenfeld/raku/ch-1.raku | 21 | ||||
| -rw-r--r-- | challenge-133/laurent-rosenfeld/raku/ch-2.raku | 27 | ||||
| -rw-r--r-- | stats/pwc-current.json | 189 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 44 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1934 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 362 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 122 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 104 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 116 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 104 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 122 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 98 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 48 |
19 files changed, 1822 insertions, 1670 deletions
diff --git a/challenge-133/laurent-rosenfeld/blog.txt b/challenge-133/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..da99c8060f --- /dev/null +++ b/challenge-133/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +http://blogs.perl.org/users/laurent_r/2021/10/perl-weekly-challenge-133-integer-square-roots-and-smith-numbers.html diff --git a/challenge-133/laurent-rosenfeld/perl/ch-1.pl b/challenge-133/laurent-rosenfeld/perl/ch-1.pl new file mode 100644 index 0000000000..30d428d884 --- /dev/null +++ b/challenge-133/laurent-rosenfeld/perl/ch-1.pl @@ -0,0 +1,23 @@ +use strict; +use warnings; +use feature "say"; + +sub sqroot { + # Bisection method + my $c = shift; + my $start = 1; + my $end = $c; + my $est = 2 ** (int((log($c)/log(2))/2) + 1); + while (1) { + say "\tIntermediate values: $start, $est, and $end"; + last if abs($end-$start) <= 1; + if ($est ** 2 > $c) { + $end = $est; + } else { + $start = $est; + } + $est = int (($end + $start) / 2); + } + return $est; +} +say "$_\t", sqroot $_ for 85, 101, 200_000_000; diff --git a/challenge-133/laurent-rosenfeld/perl/ch-2.pl b/challenge-133/laurent-rosenfeld/perl/ch-2.pl new file mode 100644 index 0000000000..be9c840650 --- /dev/null +++ b/challenge-133/laurent-rosenfeld/perl/ch-2.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl +use strict; +use warnings; +use feature qw/say/; +use Data::Dumper; +use constant MAX => 400; + +my @primes = (2, 3, 5, 7); +my $current = 9; +while (1) { + my $prime = 1; + for my $i (@primes) { + my $i_sq = $i * $i; + last if $i_sq > $current; + $prime = 0, last if $current % $i == 0; + } + push @primes, $current if $prime;; + $current += 2; + last if $current > MAX; +} +my %primes = map { $_ => 1} @primes; + +sub prime_factors { + my $num = shift; + my $origin_num = $num; + my @factors; + for my $div (@primes) { + while ($num % $div == 0) { + push @factors, $div; + $num /= $div; + } + return @factors if $num == 1; + } + push @factors, $num unless $num == $origin_num; + return @factors; +} + +sub add_digits { +my $sum = 0; + for my $i (@_) { + $sum += $_ for split //, $i; + } + return $sum; +} +# say join " ", prime_factors $_ for grep {not exists $primes{$_}} 2..50; + +my @result; +my $count = 0; +my $i = 2; +while (1) { + $i++; + next if exists $primes{$i}; # we want composite numbers only + my @factors = prime_factors $i; + push @result, $i and $count++ if add_digits($i) == add_digits(@factors); + last if $count >= 10; +} +say "@result"; diff --git a/challenge-133/laurent-rosenfeld/raku/ch-1.raku b/challenge-133/laurent-rosenfeld/raku/ch-1.raku new file mode 100644 index 0000000000..2d3b91af54 --- /dev/null +++ b/challenge-133/laurent-rosenfeld/raku/ch-1.raku @@ -0,0 +1,21 @@ +use v6; + +sub sqroot (Int $a) { + # Bisection approach + my $start = 1; + my $end = $a; + my $est; + loop { + $est = ($start + $end) div 2; + say "\tIntermediate values: $start, $est, and $end"; + my $est-sq = $est ** 2; + last if abs($end-$start) <= 1; + if $est ** 2 > $a { + $end = $est; + } else { + $start = $est; + } + } + return $est; +} +say "$_\t", sqroot $_ for 10, 27, 85, 101, 200_000_000; diff --git a/challenge-133/laurent-rosenfeld/raku/ch-2.raku b/challenge-133/laurent-rosenfeld/raku/ch-2.raku new file mode 100644 index 0000000000..f096c13508 --- /dev/null +++ b/challenge-133/laurent-rosenfeld/raku/ch-2.raku @@ -0,0 +1,27 @@ +use v6; + +my @primes = grep {.is-prime}, 1..*; + +sub prime-factors (UInt $num-in) { + my @factors; + my $num = $num-in; + for @primes -> $div { + while ($num %% $div) { + push @factors, $div; + $num div= $div; + } + return @factors if $num == 1; + } + push @factors, $num unless $num == $num-in; + return @factors; +} + +my @result; +my $count = 0; +for 1..* -> $i { + next if $i.is-prime; # we want composite numbers only + my @factors = prime-factors $i; + push @result, $i and ++$count if (|@factors).comb.sum == $i.comb.sum; + last if $count >= 10; +} +say @result; diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 38c94379f1..f6ad0a62ce 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,6 +1,22 @@ { + "legend" : { + "enabled" : 0 + }, + "chart" : { + "type" : "column" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, "series" : [ { + "name" : "The Weekly Challenge - 133", "data" : [ { "drilldown" : "Abigail", @@ -8,44 +24,44 @@ "y" : 4 }, { - "drilldown" : "Andinus", "y" : 2, - "name" : "Andinus" + "name" : "Andinus", + "drilldown" : "Andinus" }, { "y" : 5, - "name" : "Arne Sommer", - "drilldown" : "Arne Sommer" + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer" }, { - "name" : "Ben Davies", "y" : 2, - "drilldown" : "Ben Davies" + "drilldown" : "Ben Davies", + "name" : "Ben Davies" }, { - "name" : "Cheok-Yin Fung", "y" : 1, - "drilldown" : "Cheok-Yin Fung" + "drilldown" : "Cheok-Yin Fung", + "name" : "Cheok-Yin Fung" }, { - "drilldown" : "Dave Jacoby", "name" : "Dave Jacoby", + "drilldown" : "Dave Jacoby", "y" : 3 }, { - "y" : 2, "name" : "E. Choroba", - "drilldown" : "E. Choroba" + "drilldown" : "E. Choroba", + "y" : 2 }, { - "drilldown" : "Flavio Poletti", "name" : "Flavio Poletti", + "drilldown" : "Flavio Poletti", "y" : 6 }, { "y" : 2, - "name" : "James Raspass", - "drilldown" : "James Raspass" + "drilldown" : "James Raspass", + "name" : "James Raspass" }, { "drilldown" : "James Smith", @@ -53,11 +69,16 @@ "y" : 3 }, { - "name" : "Jorg Sommrey", "y" : 2, + "name" : "Jorg Sommrey", "drilldown" : "Jorg Sommrey" }, { + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", + "y" : 5 + }, + { "drilldown" : "Mark Anderson", "name" : "Mark Anderson", "y" : 2 @@ -68,40 +89,46 @@ "drilldown" : "Peter Campbell Smith" }, { - "y" : 5, + "drilldown" : "Roger Bell_West", "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West" + "y" : 5 }, { + "y" : 2, "drilldown" : "Simon Proctor", - "name" : "Simon Proctor", - "y" : 2 + "name" : "Simon Proctor" }, { - "name" : "Steven Wilson", "y" : 1, + "name" : "Steven Wilson", "drilldown" : "Steven Wilson" }, { - "drilldown" : "Ulrich Rieke", "y" : 4, + "drilldown" : "Ulrich Rieke", "name" : "Ulrich Rieke" }, { + "drilldown" : "W. Luis Mochan", "name" : "W. Luis Mochan", - "y" : 3, - "drilldown" : "W. Luis Mochan" + "y" : 3 } ], - "name" : "The Weekly Challenge - 133", "colorByPoint" : 1 } ], + "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 + }, + "subtitle" : { + "text" : "[Champions: 19] Last updated at 2021-10-09 15:00:09 GMT" + }, "drilldown" : { "series" : [ { "name" : "Abigail", - "id" : "Abigail", "data" : [ [ "Perl", @@ -111,11 +138,11 @@ "Blog", 2 ] - ] + ], + "id" : "Abigail" }, { "name" : "Andinus", - "id" : "Andinus", "data" : [ [ "Raku", @@ -125,7 +152,8 @@ "Blog", 1 ] - ] + ], + "id" : "Andinus" }, { "data" : [ @@ -142,18 +170,18 @@ 1 ] ], - "id" : "Arne Sommer", - "name" : "Arne Sommer" + "name" : "Arne Sommer", + "id" : "Arne Sommer" }, { + "id" : "Ben Davies", + "name" : "Ben Davies", "data" : [ [ "Raku", 2 ] - ], - "id" : "Ben Davies", - "name" : "Ben Davies" + ] }, { "data" : [ @@ -162,10 +190,11 @@ 1 ] ], - "id" : "Cheok-Yin Fung", - "name" : "Cheok-Yin Fung" + "name" : "Cheok-Yin Fung", + "id" : "Cheok-Yin Fung" }, { + "id" : "Dave Jacoby", "data" : [ [ "Perl", @@ -176,20 +205,20 @@ 1 ] ], - "name" : "Dave Jacoby", - "id" : "Dave Jacoby" + "name" : "Dave Jacoby" }, { - "id" : "E. Choroba", - "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "E. Choroba", + "id" : "E. Choroba" }, { + "id" : "Flavio Poletti", "data" : [ [ "Perl", @@ -204,22 +233,20 @@ 2 ] ], - "id" : "Flavio Poletti", "name" : "Flavio Poletti" }, { + "id" : "James Raspass", + "name" : "James Raspass", "data" : [ [ "Raku", 2 ] - ], - "name" : "James Raspass", - "id" : "James Raspass" + ] }, { "name" : "James Smith", - "id" : "James Smith", "data" : [ [ "Perl", @@ -229,7 +256,8 @@ "Blog", 1 ] - ] + ], + "id" : "James Smith" }, { "id" : "Jorg Sommrey", @@ -242,28 +270,46 @@ ] }, { + "name" : "Laurent Rosenfeld", "data" : [ [ + "Perl", + 2 + ], + [ "Raku", 2 + ], + [ + "Blog", + 1 ] ], + "id" : "Laurent Rosenfeld" + }, + { "id" : "Mark Anderson", - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "data" : [ + [ + "Raku", + 2 + ] + ] }, { + "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", "data" : [ [ "Perl", 2 ] - ], - "id" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith" + ] }, { - "name" : "Roger Bell_West", "id" : "Roger Bell_West", + "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -280,26 +326,27 @@ ] }, { + "name" : "Simon Proctor", "data" : [ [ "Raku", 2 ] ], - "id" : "Simon Proctor", - "name" : "Simon Proctor" + "id" : "Simon Proctor" }, { - "id" : "Steven Wilson", - "name" : "Steven Wilson", "data" : [ [ "Perl", 1 ] - ] + ], + "name" : "Steven Wilson", + "id" : "Steven Wilson" }, { + "id" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -310,10 +357,11 @@ 2 ] ], - "id" : "Ulrich Rieke", "name" : "Ulrich Rieke" }, { + "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -323,9 +371,7 @@ "Blog", 1 ] - ], - "name" : "W. Luis Mochan", - "id" : "W. Luis Mochan" + ] } ] }, @@ -334,33 +380,10 @@ "text" : "Total Solutions" } }, - "subtitle" : { - "text" : "[Champions: 18] Last updated at 2021-10-08 19:27:33 GMT" - }, - "legend" : { - "enabled" : 0 - }, "xAxis" : { "type" : "category" }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, "title" : { "text" : "The Weekly Challenge - 133" - }, - "chart" : { - "type" : "column" - }, - "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/>" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 9eb1b16011..663e6215f2 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,43 +1,52 @@ { + "legend" : { + "enabled" : "false" + }, + "chart" : { + "type" : "column" + }, "series" : [ { "data" : [ [ "Blog", - 1919 + 1920 ], [ "Perl", - 6324 + 6326 ], [ "Raku", - 3879 + 3881 ] ], "name" : "Contributions", "dataLabels" : { - "rotation" : -90, - "color" : "#FFFFFF", "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" }, - "y" : 10, - "enabled" : "true", "align" : "right", - "format" : "{point.y:.0f}" + "enabled" : "true", + "y" : 10, + "rotation" : -90, + "format" : "{point.y:.0f}", + "color" : "#FFFFFF" } } ], + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "subtitle" : { + "text" : "Last updated at 2021-10-09 15:00:09 GMT" + }, "yAxis" : { + "min" : 0, "title" : { "text" : null - }, - "min" : 0 - }, - "subtitle" : { - "text" : "Last updated at 2021-10-08 19:27:33 GMT" + } }, "xAxis" : { "type" : "category", @@ -48,15 +57,6 @@ } } }, - "legend" : { - "enabled" : "false" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "chart" : { - "type" : "column" - }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2021]" } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 5673e7eaf0..4a09b06e3f 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,8 +1,705 @@ { + "legend" : { + "enabled" : "false" + }, + "chart" : { + "type" : "column" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "series" : [ + { + "data" : [ + { + "name" : "#001", + "drilldown" : "001", + "y" : 161 + }, + { + "y" : 125, + "name" : "#002", + "drilldown" : "002" + }, + { + "name" : "#003", + "drilldown" : "003", + "y" : 81 + }, + { + "drilldown" : "004", + "name" : "#004", + "y" : 99 + }, + { + "y" : 78, + "drilldown" : "005", + "name" : "#005" + }, + { + "drilldown" : "006", + "name" : "#006", + "y" : 58 + }, + { + "name" : "#007", + "drilldown" : "007", + "y" : 64 + }, + { + "drilldown" : "008", + "name" : "#008", + "y" : 78 + }, + { + "y" : 76, + "name" : "#009", + "drilldown" : "009" + }, + { + "name" : "#010", + "drilldown" : "010", + "y" : 65 + }, + { + "name" : "#011", + "drilldown" : "011", + "y" : 85 + }, + { + "y" : 89, + "name" : "#012", + "drilldown" : "012" + }, + { + "name" : "#013", + "drilldown" : "013", + "y" : 85 + }, + { + "y" : 101, + "drilldown" : "014", + "name" : "#014" + }, + { + "drilldown" : "015", + "name" : "#015", + "y" : 99 + }, + { + "y" : 71, + "name" : "#016", + "drilldown" : "016" + }, + { + "name" : "#017", + "drilldown" : "017", + "y" : 84 + }, + { + "y" : 81, + "name" : "#018", + "drilldown" : "018" + }, + { + "drilldown" : "019", + "name" : "#019", + "y" : 103 + }, + { + "y" : 101, + "drilldown" : "020", + "name" : "#020" + }, + { + "y" : 72, + "name" : "#021", + "drilldown" : "021" + }, + { + "y" : 68, + "drilldown" : "022", + "name" : "#022" + }, + { + "y" : 97, + "drilldown" : "023", + "name" : "#023" + }, + { + "name" : "#024", + "drilldown" : "024", + "y" : 75 + }, + { + "name" : "#025", + "drilldown" : "025", + "y" : 59 + }, + { + "name" : "#026", + "drilldown" : "026", + "y" : 74 + }, + { + "drilldown" : "027", + "name" : "#027", + "y" : 60 + }, + { + "y" : 80, + "name" : "#028", + "drilldown" : "028" + }, + { + "name" : "#029", + "drilldown" : "029", + "y" : 79 + }, + { + "name" : "#030", + "drilldown" : "030", + "y" : 117 + }, + { + "name" : "#031", + "drilldown" : "031", + "y" : 89 + }, + { + "name" : "#032", + "drilldown" : "032", + "y" : 94 + }, + { + "name" : "#033", + "drilldown" : "033", + "y" : 110 + }, + { + "drilldown" : "034", + "name" : "#034", + "y" : 64 + }, + { + "drilldown" : "035", + "name" : "#035", + "y" : 64 + }, + { + "name" : "#036", + "drilldown" : "036", + "y" : 68 + }, + { + "name" : "#037", + "drilldown" : "037", + "y" : 67 + }, + { + "drilldown" : "038", + "name" : "#038", + "y" : 68 + }, + { + "y" : 62, + "drilldown" : "039", + "name" : "#039" + }, + { + "y" : 73, + "name" : "#040", + "drilldown" : "040" + }, + { + "name" : "#041", + "drilldown" : "041", + "y" : 76 + }, + { + "drilldown" : "042", + "name" : "#042", + "y" : 92 + }, + { + "y" : 68, + "name" : "#043", + "drilldown" : "043" + }, + { + "name" : "#044", + "drilldown" : "044", + "y" : 85 + }, + { + "drilldown" : "045", + "name" : "#045", + "y" : 96 + }, + { + "y" : 87, + "name" : "#046", + "drilldown" : "046" + }, + { + "name" : "#047", + "drilldown" : "047", + "y" : 84 + }, + { + "name" : "#048", + "drilldown" : "048", + "y" : 108 + }, + { + "y" : 89, + "drilldown" : "049", + "name" : "#049" + }, + { + "drilldown" : "050", + "name" : "#050", + "y" : 98 + }, + { + "y" : 89, + "name" : "#051", + "drilldown" : "051" + }, + { + "name" : "#052", + "drilldown" : "052", + "y" : 91 + }, + { + "y" : 101, + "drilldown" : "053", + "name" : "#053" + }, + { + "name" : "#054", + "drilldown" : "054", + "y" : 103 + }, + { + "name" : "#055", + "drilldown" : "055", + "y" : 88 + }, + { + "y" : 95, + "drilldown" : "056", + "name" : "#056" + }, + { + "drilldown" : "057", + "name" : "#057", + "y" : 80 + }, + { + "y" : 69, + "name" : "#058", + "drilldown" : "058" + }, + { + "drilldown" : "059", + "name" : "#059", + "y" : 89 + }, + { + "y" : 85, + "drilldown" : "060", + "name" : "#060" + }, + { + "drilldown" : "061", + "name" : "#061", + "y" : 81 + }, + { + "drilldown" : "062", + "name" : "#062", + "y" : 58 + }, + { + "drilldown" : "063", + "name" : "#063", + "y" : 89 + }, + { + "y" : 80, + "name" : "#064", + "drilldown" : "064" + }, + { + "y" : 73, + "drilldown" : "065", + "name" : "#065" + }, + { + "drilldown" : "066", + "name" : "#066", + "y" : 84 + }, + { + "y" : 90, + "drilldown" : "067", + "name" : "#067" + }, + { + "name" : "#068", + "drilldown" : "068", + "y" : 75 + }, + { + "drilldown" : "069", + "name" : "#069", + "y" : 83 + }, + { + "name" : "#070", + "drilldown" : "070", + "y" : 93 + }, + { + "y" : 78, + "drilldown" : "071", + "name" : "#071" + }, + { + "y" : 112, + "name" : "#072", + "drilldown" : "072" + }, + { + "y" : 110, + "name" : "#073", + "drilldown" : "073" + }, + { + "drilldown" : "074", + "name" : "#074", + "y" : 115 + }, + { + "name" : "#075", + "drilldown" : "075", + "y" : 115 + }, + { + "y" : 99, + "name" : "#076", + "drilldown" : "076" + }, + { + "drilldown" : "077", + "name" : "#077", + "y" : 98 + }, |
