diff options
| -rwxr-xr-x | challenge-144/colin-crain/perl/ch-1.pl | 69 | ||||
| -rwxr-xr-x | challenge-144/colin-crain/perl/ch-2.pl | 118 | ||||
| -rw-r--r-- | stats/pwc-current.json | 235 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 38 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 2112 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 374 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 122 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 96 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 124 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 90 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 76 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 96 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 54 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 40 |
16 files changed, 1995 insertions, 1793 deletions
diff --git a/challenge-144/colin-crain/perl/ch-1.pl b/challenge-144/colin-crain/perl/ch-1.pl new file mode 100755 index 0000000000..a66d1c8b49 --- /dev/null +++ b/challenge-144/colin-crain/perl/ch-1.pl @@ -0,0 +1,69 @@ +#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# semipro-prime.pl
+#
+# method:
+# The semiprimes are interesting numbers
+#
+# © 2021 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+my $max = 100;
+
+my @primes = make_prime_list( $max )->@*;
+my %semis;
+
+PRIME: for my $p ( @primes ) {
+ for my $q ( grep { $_ >= $p } @primes ) {
+ next PRIME if ($p * $q) > $max;
+ $semis{ $p * $q }++;
+ }
+}
+
+my @semiprimes = sort { $a <=> $b } keys %semis;
+
+say $_ for @semiprimes;
+
+
+
+
+sub make_prime_list ($max) {
+## creates a list of all primes less than or equal to a given number
+ my @primes = (2);
+ CANDIDATE: for( my $candidate = 3; $candidate <= $max; $candidate += 2 ) {
+ my $sqrt_candidate = sqrt( $candidate );
+ for( my $test = 3; $test <= $sqrt_candidate; $test += 2 ) {
+ next CANDIDATE if $candidate % $test == 0;
+ }
+ push @primes, $candidate;
+ }
+ return \@primes;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# use Test::More;
+#
+# is
+#
+# done_testing();
diff --git a/challenge-144/colin-crain/perl/ch-2.pl b/challenge-144/colin-crain/perl/ch-2.pl new file mode 100755 index 0000000000..f52a9e46d4 --- /dev/null +++ b/challenge-144/colin-crain/perl/ch-2.pl @@ -0,0 +1,118 @@ +#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# ulam.pl
+#
+# Ulam Sequence
+# Submitted by: Mohammad S Anwar
+#
+# You are given two positive numbers, $u and $v.
+#
+# Write a script to generate Ulam Sequence having at least 10 Ulam
+# numbers where $u and $v are the first 2 Ulam numbers.
+#
+# For more information about Ulam Sequence, please checkout the website.
+#
+# The standard Ulam sequence (the (1, 2)-Ulam sequence) starts with
+# U1 = 1 and U2 = 2. Then for n > 2, U(n) is defined to be the
+# smallest integer that is the sum of two distinct earlier terms in
+# exactly one way and larger than all earlier terms.
+#
+# Example 1
+#
+# Input: $u = 1, $v = 2
+# Output: 1, 2, 3, 4, 6, 8, 11, 13, 16, 18
+#
+# Example 2
+#
+# Input: $u = 2, $v = 3
+# Output: 2, 3, 5, 7, 8, 9, 13, 14, 18, 19
+#
+# Example 3
+#
+# Input: $u = 2, $v = 5
+# Output: 2, 5, 7, 9, 11, 12, 13, 15, 19, 23
+#
+# method:
+# the tricky part here is making sure that the given number can
+# be summed in only one unique manner from two other distinct
+# ulam numbers. To do this we will require a database of sums,
+# and every time we add a number to the sequence we will need to
+# produce a new list of sums of that value and every other
+# previously produced. This list represents a unique construction
+# for each value, and these values are updated into the database,
+# with duplicate entries incrementing a counter of possible
+# formations.
+#
+# The database is thus a lookup of sums mapped to the number of
+# constructions that can be used to create the value.
+#
+# To find the next Ulam number we need to find the smallest value
+# from this lookup of sums that has only one construction. We do
+# this by sorting the keys to the lookup and trying the smallest
+# values first. If a candidate has more than one constuction is
+# is rejected and the next is tried until the first unique value
+# is found.
+#
+# We constrain the growth of trying every Ulam number with
+# every other, keeping and then sorting those results to find
+# the smallest, by culling sums less than the last calculated
+# Ulam number from the lookup and only adding new sums greater
+# than the last calculated as well. Also, as new candidates are
+# tried if they are rejected they are removed from the database
+# as we go. In fact, we don't even need to sort the whole
+# database of sums at all, as hashtable lookups are very
+# efficient and Ulam numbers are close together. We can just
+# try the next number until we get a candidate, which is then
+# dealt with as before.
+#
+
+#
+# © 2021 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+my $u = shift // 17;
+my $v = shift // 13;
+my $len = shift // 10000;
+
+( $u, $v ) = ( $v, $u ) if $v < $u;
+
+my $sums = { ($u + $v) => 1 };
+my @ulam = ( $u , $v );
+
+get_next_ulam( $sums, \@ulam ) for 1..$len;
+
+say $_ for @ulam;
+
+
+### subs all the way down
+
+
+sub get_next_ulam ( $sums, $ulam ) {
+
+ my $candidate = $ulam->[-1];
+
+ while ( $candidate++ ) {
+ next if not exists $sums->{$candidate};
+ last if $sums->{$candidate} == 1;
+ delete $sums->{$candidate} ;
+ }
+
+ for my $u ( @ulam ) {
+ $sums->{ $u + $candidate }++ if $u + $candidate > $ulam[-1];
+ }
+
+ push $ulam->@*, $candidate;
+}
+
+
+
+
diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 87e5c98aa2..6ccf721312 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,10 +1,13 @@ { - "xAxis" : { - "type" : "category" + "subtitle" : { + "text" : "[Champions: 29] Last updated at 2021-12-27 00:41:29 GMT" }, "legend" : { "enabled" : 0 }, + "title" : { + "text" : "The Weekly Challenge - 144" + }, "drilldown" : { "series" : [ { @@ -32,14 +35,14 @@ ] }, { - "name" : "Alexander Pankoff", - "id" : "Alexander Pankoff", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Alexander Pankoff", + "id" : "Alexander Pankoff" }, { "data" : [ @@ -56,10 +59,12 @@ 1 ] ], - "name" : "Arne Sommer", - "id" : "Arne Sommer" + "id" : "Arne Sommer", + "name" : "Arne Sommer" }, { + "id" : "Athanasius", + "name" : "Athanasius", "data" : [ [ "Perl", @@ -69,19 +74,27 @@ "Raku", 2 ] - ], - "id" : "Athanasius", - "name" : "Athanasius" + ] }, { "data" : [ [ "Perl", - 1 + 2 ] ], + "name" : "Colin Crain", + "id" : "Colin Crain" + }, + { "name" : "Cristina Heredia", - "id" : "Cristina Heredia" + "id" : "Cristina Heredia", + "data" : [ + [ + "Perl", + 1 + ] + ] }, { "name" : "Dave Jacoby", @@ -98,14 +111,14 @@ ] }, { - "name" : "David Santiago", - "id" : "David Santiago", "data" : [ [ "Raku", 1 ] - ] + ], + "name" : "David Santiago", + "id" : "David Santiago" }, { "data" : [ @@ -124,8 +137,8 @@ 2 ] ], - "id" : "E. Choroba", - "name" : "E. Choroba" + "name" : "E. Choroba", + "id" : "E. Choroba" }, { "data" : [ @@ -142,8 +155,8 @@ 2 ] ], - "id" : "Flavio Poletti", - "name" : "Flavio Poletti" + "name" : "Flavio Poletti", + "id" : "Flavio Poletti" }, { "id" : "James Smith", @@ -160,18 +173,18 @@ ] }, { + "id" : "Jan Krnavek", + "name" : "Jan Krnavek", "data" : [ [ "Raku", 2 ] - ], - "name" : "Jan Krnavek", - "id" : "Jan Krnavek" + ] }, { - "name" : "Laurent Rosenfeld", "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -198,8 +211,8 @@ 4 ] ], - "name" : "Luca Ferrari", - "id" : "Luca Ferrari" + "id" : "Luca Ferrari", + "name" : "Luca Ferrari" }, { "data" : [ @@ -212,8 +225,6 @@ "name" : "Mark Anderson" }, { - "id" : "Mark Senn", - "name" : "Mark Senn", "data" : [ [ "Raku", @@ -223,7 +234,9 @@ "Blog", 2 ] - ] + ], + "name" : "Mark Senn", + "id" : "Mark Senn" }, { "name" : "Matthew Neleigh", @@ -242,18 +255,18 @@ 1 ] ], - "id" : "Mohammad S Anwar", - "name" : "Mohammad S Anwar" + "name" : "Mohammad S Anwar", + "id" : "Mohammad S Anwar" }, { - "name" : "Niels van Dijke", - "id" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Niels van Dijke", + "id" : "Niels van Dijke" }, { "data" : [ @@ -266,8 +279,8 @@ "id" : "Paulo Custodio" }, { - "id" : "Pete Houston", "name" : "Pete Houston", + "id" : "Pete Houston", "data" : [ [ "Perl", @@ -286,12 +299,12 @@ 1 ] ], - "name" : "Peter Campbell Smith", - "id" : "Peter Campbell Smith" + "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith" }, { - "name" : "Robert DiCicco", "id" : "Robert DiCicco", + "name" : "Robert DiCicco", "data" : [ [ "Perl", @@ -318,8 +331,8 @@ "name" : "Roger Bell_West" }, { - "id" : "Simon Green", "name" : "Simon Green", + "id" : "Simon Green", "data" : [ [ "Perl", @@ -328,8 +341,8 @@ ] }, { - "name" : "Ulrich Rieke", "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -342,6 +355,8 @@ ] }, { + "name" : "W. Luis Mochan", + "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -351,99 +366,109 @@ "Blog", 1 ] - ], - "name" : "W. Luis Mochan", - "id" : "W. Luis Mochan" + ] } ] }, - "title" : { - "text" : "The Weekly Challenge - 144" + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, + "xAxis" : { + "type" : "category" }, "chart" : { "type" : "column" }, "tooltip" : { - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", "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/>" }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } + "yAxis" : { + "title" : { + "text" : "Total Solutions" } }, "series" : [ { + "name" : "The Weekly Challenge - 144", + "colorByPoint" : 1, "data" : [ { "y" : 2, - "name" : "Abigail", - "drilldown" : "Abigail" + "drilldown" : "Abigail", + "name" : "Abigail" }, { "y" : 3, - "name" : "Adam Russell", - "drilldown" : "Adam Russell" + "drilldown" : "Adam Russell", + "name" : "Adam Russell" }, { - "drilldown" : "Alexander Pankoff", "name" : "Alexander Pankoff", - "y" : 2 + "y" : 2, + "drilldown" : "Alexander Pankoff" }, { "y" : 4, - "name" : "Arne Sommer", - "drilldown" : "Arne Sommer" + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer" }, { + "drilldown" : "Athanasius", "y" : 4, - "name" : "Athanasius", - "drilldown" : "Athanasius" + "name" : "Athanasius" + }, + { + "name" : "Colin Crain", + "y" : 2, + "drilldown" : "Colin Crain" }, { - "y" : 1, "name" : "Cristina Heredia", + "y" : 1, "drilldown" : "Cristina Heredia" }, { "name" : "Dave Jacoby", - "y" : 3, - "drilldown" : "Dave Jacoby" + "drilldown" : "Dave Jacoby", + "y" : 3 }, { "name" : "David Santiago", - "y" : 1, - "drilldown" : "David Santiago" + "drilldown" : "David Santiago", + "y" : 1 }, { - "drilldown" : "Duncan C. White", + "name" : "Duncan C. White", "y" : 2, - "name" : "Duncan C. White" + "drilldown" : "Duncan C. White" }, { - "drilldown" : "E. Choroba", "name" : "E. Choroba", + "drilldown" : "E. Choroba", "y" : 2 }, { + "drilldown" : "Flavio Poletti", "y" : 6, - "name" : "Flavio Poletti", - "drilldown" : "Flavio Poletti" + "name" : "Flavio Poletti" }, { - "drilldown" : "James Smith", "name" : "James Smith", - "y" : 3 + "y" : 3, + "drilldown" : "James Smith" }, { + "y" : 2, "drilldown" : "Jan Krnavek", - "name" : "Jan Krnavek", - "y" : 2 + "name" : "Jan Krnavek" }, { "name" : "Laurent Rosenfeld", @@ -456,13 +481,13 @@ "name" : "Luca Ferrari" }, { - "name" : "Mark Anderson", "y" : 1, - "drilldown" : "Mark Anderson" + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson" }, { - "y" : 4, "name" : "Mark Senn", + "y" : 4, "drilldown" : "Mark Senn" }, { @@ -471,66 +496,56 @@ "drilldown" : "Matthew Neleigh" }, { + "drilldown" : "Mohammad S Anwar", "y" : 1, - "name" : "Mohammad S Anwar", - "drilldown" : "Mohammad S Anwar" + "name" : "Mohammad S Anwar" }, { - "name" : "Niels van Dijke", + "drilldown" : "Niels van Dijke", "y" : 2, - "drilldown" : "Niels van Dijke" + "name" : "Niels van Dijke" }, { - "drilldown" : "Paulo Custodio", + "name" : "Paulo Custodio", "y" : 2, - "name" : "Paulo Custodio" + "drilldown" : "Paulo Custodio" }, { + "name" : "Pete Houston", "drilldown" : "Pete Houston", - "y" : 1, - "name" : "Pete Houston" + "y" : 1 }, { - "drilldown" : "Peter Campbell Smith", "name" : "Peter Campbell Smith", + "drilldown" : "Peter Campbell Smith", "y" : 3 }, { "name" : "Robert DiCicco", - "y" : 1, - "drilldown" : "Robert DiCicco" + "drilldown" : "Robert DiCicco", + "y" : 1 }, { "y" : 5, - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West" + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West" }, { - "drilldown" : "Simon Green", "name" : "Simon Green", - "y" : 2 + "y" : 2, + "drilldown" : "Simon Green" }, { + "y" : 4, "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke", - "y" : 4 + "name" : "Ulrich Rieke" }, { "y" : 3, - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan" + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan" } - ], - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 144" - } - ], - "subtitle" : { - "text" : "[Champions: 28] Last updated at 2021-12-26 23:51:13 GMT" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" + ] } - } + ] } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 050a454314..966d13bb4e 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,12 +1,6 @@ { - "xAxis" : { - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "type" : "category" + "subtitle" : { + "text" : "Last updated at 2021-12-27 00:41:29 GMT" }, "legend" : { "enabled" : "false" @@ -17,18 +11,17 @@ "series" : [ { "dataLabels" : { + "format" : "{point.y:.0f}", + "align" : "right", "color" : "#FFFFFF", "enabled" : "true", - "y" : 10, "rotation" : -90, + "y" : 10, "style" : { "fontSize" : "13px", "fontFamily" : "Verdana, sans-serif" - }, - "format" : "{point.y:.0f}", - "align" : "right" + } }, - "name" : "Contributions", "data" : [ [ "Blog", @@ -36,22 +29,29 @@ ], [ "Perl", - 6949 + 6951 ], [ "Raku", 4185 ] - ] + ], + "name" : "Contributions" } ], - "subtitle" : { - "text" : "Last updated at 2021-12-26 23:51:13 GMT" - }, "yAxis" : { - "min" : 0, "title" : { "text" : null + }, + "min" : 0 + }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } } }, "chart" : { diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 043e1dbecb..eca2cc87d6 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,765 +1,9 @@ { - "series" : [ - { - "name" : "The Weekly Challenge Languages", - "colorByPoint" : "true", - "data" : [ - { - "drilldown" : "001", - "y" : 161, - "name" : "#001" - }, - { - "y" : 125, - "name" : "#002", - "drilldown" : "002" - }, - { - "name" : "#003", - "y" : 83, - "drilldown" : "003" - }, - { - "drilldown" : "004", - "name" : "#004", - "y" : 99 - }, - { - "y" : 78, - "name" : "#005", - "drilldown" : "005" - }, - { - "drilldown" : "006", - "name" : "#006", - "y" : 58 - }, - { - "drilldown" : "007", - "y" : 64, - "name" : "#007" - }, - { - "drilldown" : "008", - "name" : "#008", - "y" : 78 - }, - { - "drilldown" : "009", - "y" : 76, - "name" : "#009" - }, - { - "drilldown" : "010", - "y" : 65, - "name" : "#010" - }, - { - "drilldown" : "011", - "y" : 85, - "name" : "#011" - }, - { - "drilldown" : "012", - "y" : 89, - "name" : "#012" - }, - { - "drilldown" : "013", - "y" : 85, - "name" : "#013" - }, - { - "drilldown" : "014", - "name" : "#014", - "y" : 101 - }, - { - "name" : "#015", - "y" : 99, - "drilldown" : "015" - }, - { - "drilldown" : "016", - "y" : 71, - "name" : "#016" - }, - { - "drilldown" : "017", - "y" : 84, - "name" : "#017" - }, - { - "name" : "#018", - "y" : 81, - "drilldown" : "018" - }, - { - "y" : 103, - "name" : "#019", - "drilldown" : "019" - }, - { - "name" : "#020", - "y" : 101, - "drilldown" : "020" - }, - { - "drilldown" : "021", - "y" : 72, - "name" : "#021" - }, - { - "y" : 68, - "name" : "#022", - "drilldown" : "022" - }, - { - "drilldown" : "023", - "name" : "#023", - "y" : 97 - }, - { - "y" : 75, - "name" : "#024", - "drilldown" : "024" - }, - { - "drilldown" : "025", - "y" : 59, - "name" : "#025" - }, - { - "drilldown" : "026", - "y" : 74, - "name" : "#026" - }, - { - "name" : "#027", - "y" : 62, - "drilldown" : "027" - }, - { - "y" : 82, - "name" : "#028", - "drilldown" : "028" - }, - { - "name" : "#029", - "y" : 81, - "drilldown" : "029" - }, - { - "name" : "#030", - "y" : 119, - "drilldown" : "030" - }, - { - "drilldown" : "031", - "name" : "#031", - "y" : 91 - }, - { - "y" : 96, - "name" : "#032", - "drilldown" : "032" - }, - { - "drilldown" : "033", - "y" : 112, - "name" : "#033" - }, - { - "y" : 66, - "name" : "#034", - "drilldown" : "034" - }, - { - "name" : "#035", - "y" : 64, - "drilldown" : "035" - }, - { - "drilldown" : "036", - "y" : 68, - "name" : "#036" - }, - { - "drilldown" : "037", - "y" : 67, - "name" : "#037" - }, - { - "y" : 68, - "name" : "#038", - "drilldown" : "038" - }, - { - "drilldown" : "039", - "name" : "#039", - "y" : 62 - }, - { - "name" : "#040", - "y" : 73, - "drilldown" : "040" - }, - { - "name" : "#041", - "y" : 76, - "drilldown" : "041" - }, - { - "drilldown" : "042", - "y" : 92, - "name" : "#042" - }, - { - "drilldown" : "043", - "name" : "#043", - "y" : 68 - }, - { - "drilldown" : "044", - "name" : "#044", - "y" : 85 - }, - { - "drilldown" : "045", - "name" : "#045", - "y" : 96 - }, - { - "name" : "#046", - "y" : 87, - "drilldown" : "046" - }, - { - "drilldown" : "047", - "name" : "#047", - "y" : 84 - }, - { - "y" : 108, - "name" : "#048", - "drilldown" : "048" - }, - { - "drilldown" : "049", - "y" : 89, - "name" : "#049" - }, - { - "name" : "#050", - "y" : 98, - "drilldown" : "050" - }, - { - "y" : 89, - "name" : "#051", - "drilldown" : "051" - }, - { - "drilldown" : "052", - "name" : "#052", - "y" : 91 - }, - { - "drilldown" : "053", - "y" : 101, - "name" : "#053" - }, - { - "drilldown" : "054", - "y" : 103, - "name" : "#054" - }, - { - "drilldown" : "055", - "name" : "#055", - "y" : 88 - }, - { - "name" : "#056", - "y" : 95, - "drilldown" : "056" - }, - { - "drilldown" : "057", - "name" : "#057", - "y" : 80 - }, - { - "drilldown" : "058", - "y" : 69 |
