aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2022-06-11 11:35:27 +0100
committerdrbaggy <js5@sanger.ac.uk>2022-06-11 11:35:27 +0100
commitf51e81fdf7b9891b5f546e1b238d506a3cbd67f9 (patch)
treefdfadadd76f09d61aa0725e6a45dce1e9ca7b6ed
parent48c3a14d8d4e1f14aa4ea66ecc2bfd01e73690aa (diff)
parent5e10de2ec961c81a4b4fbb997ef2e34ea67c296e (diff)
downloadperlweeklychallenge-club-f51e81fdf7b9891b5f546e1b238d506a3cbd67f9.tar.gz
perlweeklychallenge-club-f51e81fdf7b9891b5f546e1b238d506a3cbd67f9.tar.bz2
perlweeklychallenge-club-f51e81fdf7b9891b5f546e1b238d506a3cbd67f9.zip
Merge remote-tracking branch 'upstream/master'
-rw-r--r--challenge-168/0rir/raku/ch-1.raku40
-rw-r--r--challenge-168/0rir/raku/ch-2.raku57
-rwxr-xr-xchallenge-168/jo-37/perl/ch-1.pl155
-rwxr-xr-xchallenge-168/perlboy1967/perl/ch-1.pl51
-rwxr-xr-xchallenge-168/perlboy1967/perl/ch-2.pl47
-rwxr-xr-xchallenge-168/steve-g-lynn/raku/ch-2.p6142
-rw-r--r--stats/pwc-current.json321
-rw-r--r--stats/pwc-language-breakdown-summary.json58
-rw-r--r--stats/pwc-language-breakdown.json2310
-rw-r--r--stats/pwc-leaders.json392
-rw-r--r--stats/pwc-summary-1-30.json38
-rw-r--r--stats/pwc-summary-121-150.json40
-rw-r--r--stats/pwc-summary-151-180.json128
-rw-r--r--stats/pwc-summary-181-210.json30
-rw-r--r--stats/pwc-summary-211-240.json28
-rw-r--r--stats/pwc-summary-241-270.json46
-rw-r--r--stats/pwc-summary-31-60.json102
-rw-r--r--stats/pwc-summary-61-90.json110
-rw-r--r--stats/pwc-summary-91-120.json104
-rw-r--r--stats/pwc-summary.json50
20 files changed, 2343 insertions, 1906 deletions
diff --git a/challenge-168/0rir/raku/ch-1.raku b/challenge-168/0rir/raku/ch-1.raku
new file mode 100644
index 0000000000..174f2651a5
--- /dev/null
+++ b/challenge-168/0rir/raku/ch-1.raku
@@ -0,0 +1,40 @@
+#!/usr/bin/env raku
+# :vim ft=raku sw=4 expandtab
+use v6.d;
+
+use lib $?FILE.IO.parent(2).add("lib");
+use Test;
+=begin comment
+
+Task 1: Perrin Prime Submitted by: Roger Bell_West
+The Perrin sequence is defined to start with [3, 0, 2]; thereafter term N
+is the sum of terms N-2 and N-3.
+
+A Perrin prime is a prime number in the Perrin sequence.
+Calculate the first 13 Perrin Primes.
+
+=end comment
+
+my @exp-perrin = 3, 0, 2, 3, 2, 5, 5, 7, 10, 12, 17, 22, 29, 39;
+my @exp-per-rime = 2, 3, 5, 7, 17, 29, 277, 367, 853, 14197, 43721, 1442968193, 792606555396977;
+
+my Int @Perrin = 3, 0, 2, { $_ = @_[*-3] + @_[*-2] } … ∞;
+
+my @Perrin-prime = lazy gather {
+ my %seen;
+ for 2 … ∞ -> $i { # skip out of order dupes
+ if @Perrin[$i].is-prime {
+ take @Perrin[$i] unless %seen{@Perrin[$i]};
+ %seen{@Perrin[$i]} = True;
+ }
+ }
+};
+say 'f(13) = [' ~ @Perrin-prime[0..12].join( ',') ~ ']';
+say '';
+
+plan 2;
+is @Perrin[0..13], @exp-perrin, 'Perrin';
+is @Perrin-prime[0..12] , @exp-per-rime, '@Perrin-prime[0..12] ';
+done-testing;
+
+
diff --git a/challenge-168/0rir/raku/ch-2.raku b/challenge-168/0rir/raku/ch-2.raku
new file mode 100644
index 0000000000..631aed6970
--- /dev/null
+++ b/challenge-168/0rir/raku/ch-2.raku
@@ -0,0 +1,57 @@
+#!/usr/bin/env raku
+# :vim ft=raku sw=4 expandtab
+use v6.d;
+use Test;
+use Prime::Factor; # better than my simple implementation from challenge-159
+
+constant TEST = False;
+
+=begin comment
+Task 2: Home Prime Submitted by: Mohammad S Anwar
+
+Given an integer greater than 1, find the home prime of the given number.
+The home prime HP(n) of that integer, n, is the first prime number obtained
+by repeatedly factoring the increasing concatenation of prime factors
+including repetitions.
+
+Example of procedure.
+n f !prime !prime !prime home prime
+10 ~ 2*5 -> 25 ~ 5*5 -> 55 ~ 5*11 -> 511 ~ 7*73 -> 773
+
+=end comment
+
+my constant @prime is export
+ = 2, 3, { first * %% none(@_), (@_[*-1], *+2 … ∞)} … ∞;
+
+sub home-prime( Int $n is copy where $n > 1 --> Int ) {
+ until $n.is-prime {
+ $n = ([~] prime-factors( $n)).Int;
+ }
+ $n;
+}
+
+if TEST {
+
+ my @expected =
+ 1, 2, 3, 211, 5, 23, 7, 3331113965338635107, 311, 773, 11, 223,
+ 13, 13367, 1129, 31636373, 17, 233, 19, 3318308475676071413, 37,
+ 211, 23, 331319, 773, 3251, 13367, 227, 29, 547, 31, 241271, 311,
+ 31397, 1129, 71129, 37, 373, 313, 3314192745739, 41, 379, 43,
+ 22815088913, 3411949, 223, 47, 6161791591356884791277;
+
+ plan @expected.elems ;
+
+ is True, True, 'NOOP: Tests are on test number.';
+ my $i = 2;
+ for 2 .. @expected.elems {
+ my $hp = home-prime $_;
+ is $hp, @expected[$i -1], "hp $hp";
+ ++ $i;
+ }
+ exit;
+}
+
+sub MAIN(Int $n where $n > 1 ) {
+ say "The home prime of $n is ", home-prime( $n);
+}
+
diff --git a/challenge-168/jo-37/perl/ch-1.pl b/challenge-168/jo-37/perl/ch-1.pl
new file mode 100755
index 0000000000..8351305463
--- /dev/null
+++ b/challenge-168/jo-37/perl/ch-1.pl
@@ -0,0 +1,155 @@
+#!/usr/bin/perl -s
+
+use v5.16;
+use Test2::V0 '!array';
+use bigint;
+use List::Gen qw(:iterate :zip :source);
+use List::Util qw(product);
+use Math::Prime::Util qw(is_prime gcd);
+use experimental qw(signatures postderef);
+
+our ($tests, $examples, $iv, $f);
+$iv ||= '3, 0, 2';
+$f ||= '1, 1';
+
+run_tests() if $tests || $examples; # does not return
+
+die <<EOS unless @ARGV;
+usage: $0 [-examples] [-tests] [-f=F1,...,Fl] [-iv=S1,...Sk] [N]
+
+-examples
+ run the examples from the challenge
+
+-tests
+ run some tests
+
+-f=F1,...,Fl
+ Coefficients for the linear recurrence relation.
+
+-iv=S1,...,Sk
+ Starting values for the generated sequence.
+
+N
+ Print the first N prime numbers from the generated sequence.
+
+ The sequence starts with the values S1,...,Sk and has the
+ linear recurrence relation:
+ S(n) = F(1) * S(n - k) + ... + F(k) * S(n - 1) for n > k.
+ Selecting unique primes from this sequence.
+
+Some known prime sequences:
+IV=0,1 F=1,1: Fibonacci
+IV=2,1 F=1,1: Lucas
+IV=1,1,1 F=1,1: Padovan
+IV=3,0,2 F=1,1: Perrin (default)
+IV=0,1 F=1,2: Pell
+IV=0,1 F=2,1: Jacobsthal
+
+CAUTION: Improper choice of IV and F will cause an endless loop!
+
+EOS
+
+
+### Input and Output
+
+main: {
+ # Explicit conversion to Math::BigInt is required for a set of
+ # variables so that all newly generated values inherit therefrom.
+ # Linear factors:
+ my $f = [map Math::BigInt->new($_), split /, */, $f];
+ # Initial values:
+ my $iv = [split /, */, $iv];
+
+ # "say(n)" prints the first n generated elements.
+ lin_recur_primes($iv, $f)->say(shift);
+}
+
+
+### Implementation
+
+# The solution to task 2 from challenge 154 with different starting
+# values could be reused to solve this task. But this would by boring
+# and thus the task will be generalized here.
+#
+# The excellent Math::Prime::Util ennobles List::Gen by referencing it in
+# the "SEE ALSO" section. Indeed, it looks very cool but comes with a
+# serious flaw: There has not been any development for over 10 years and
+# one of the tests is broken. Needed "--force" to install. IMHO the
+# test result is ok, but the expected outcome is not.
+# "Failed test 'map & \(1 .. 3), 1 .. 2'"
+#
+# Building a generator for a sequence having the initial values
+# S(1),...,S(k) and a recurrence relation defined by a linear
+# combination of preceding elements:
+# S(n) = F(1) * S(n - k) + ... + F(k) * S(n - 1) for n > k.
+# and taking unique primes thereof.
+#
+sub lin_recur_primes ($s, $f) {
+
+ # Lazily extend the initial sequence using the recurrence relation.
+ ($s + iterate {($s = [$s->@[1 .. $#$s],
+ tuples($f, $s)->map('product @$_')->sum])->[-1]
+ })->uniq->filter(sub {is_prime $_});
+}
+
+
+### Examples and tests
+
+sub run_tests {
+ SKIP: {
+ skip "examples" unless $examples;
+
+ # "take" returns the given number of elements.
+ is lin_recur_primes([3, 0, 2], [1, 1])->take(13),
+ [3, 2, 5, 7, 17, 29, 277, 367, 853, 14197, 43721, 1442968193,
+ 792606555396977], 'task 1';
+ }
+
+ SKIP: {
+ skip "tests" unless $tests;
+
+ # "get" accesses elements by a zero-based index. Thus "get(15)"
+ # is *three* behind the last from "take(13)".
+ is lin_recur_primes([3, 0, 2], [1, 1])->get(15),
+ '22584751787583336797527561822649328254745329',
+ 'Perrin prime from http://oeis.org/A074788';
+
+ is lin_recur_primes([0, 1], [1, 1])->take(11),
+ [2, 3, 5, 13, 89, 233, 1597, 28657, 514229, 433494437,
+ 2971215073],
+ 'Fibonacci primes from Wiki';
+
+ is lin_recur_primes([1, 1, 1], [1, 1])->take(12),
+ [2, 3, 5, 7, 37, 151, 3329, 23833, 13091204281, 3093215881333057,
+ 1363005552434666078217421284621279933627102780881053358473,
+ 1558877695141608507751098941899265975115403618621811951868598809164180630185566719],
+ 'Padovan primes from Wiki';
+
+ is lin_recur_primes([2, 1], [1, 1])->take(15),
+ [2, 3, 7, 11, 29, 47, 199, 521, 2207, 3571, 9349, 3010349,
+ 54018521, 370248451, 6643838879],
+ 'Lucas primes from Wiki';
+
+ is lin_recur_primes([3, 1], [1, 1])->take(20),
+ [3, 5, 23, 37, 97, 157, 1741, 11933, 50549, 214129, 560597,
+ 16276621, 180510493, 398386576261, 1042989597313,
+ 41305516996050613, 174972977841043309, 13300248193487978669,
+ 238663270054423392193, 624828552868675407173],
+ 'A091157';
+
+ is lin_recur_primes([0, 1], [1, 2])->take(8),
+ [2, 5, 29, 5741, 33461, 44560482149, 1746860020068409,
+ 68480406462161287469],
+ 'Pell primes from Wiki';
+
+ is lin_recur_primes([0, 1], [2, 1])->take(15),
+ [3, 5, 11, 43, 683, 2731, 43691, 174763, 2796203, 715827883,
+ 2932031007403, 768614336404564651, 201487636602438195784363,
+ 845100400152152934331135470251,
+ 56713727820156410577229101238628035243],
+ 'Jacobsthal primes from Wiki';
+ }
+
+ done_testing;
+ exit;
+}
diff --git a/challenge-168/perlboy1967/perl/ch-1.pl b/challenge-168/perlboy1967/perl/ch-1.pl
new file mode 100755
index 0000000000..50073d073d
--- /dev/null
+++ b/challenge-168/perlboy1967/perl/ch-1.pl
@@ -0,0 +1,51 @@
+#!/bin/perl
+
+=pod
+
+The Weekly Challenge - 168
+ - https://theweeklychallenge.org/blog/perl-weekly-challenge-168/#TASK1
+
+Author: Niels 'PerlBoy' van Dijke
+
+Task 1: Perrin Prime
+Submitted by: Roger Bell_West
+
+The Perrin sequence is defined to start with [3, 0, 2]; after that, term N is the sum of
+terms N-2 and N-3. (So it continues 3, 2, 5, 5, 7, ….)
+
+ || A Perrin prime is a number in the Perrin sequence which is also a prime number.
+
+Calculate the first 13 Perrin Primes.
+
+f(13) = [2, 3, 5, 7, 17, 29, 277, 367, 853, 14197, 43721, 1442968193, 792606555396977]
+
+=cut
+
+use v5.16;
+use warnings;
+
+use Math::Prime::XS qw(is_prime);
+
+# Prototype(s)
+sub perrin ($);
+
+my %p;
+my ($n,$p) = (0,1);
+while ($n < 13) {
+ my $pN = perrin($p++);
+ if (is_prime($pN) && !exists $p{$pN}) {
+ say $pN; $p{$pN}++; $n++;
+ }
+}
+
+sub perrin ($) {
+ my ($n) = @_;
+
+ state $p = [3, 0, 2];
+
+ return $p->[$n] if defined $p->[$n];
+
+ $p->[@$p] = $p->[@$p-2] + $p->[@$p-3] while (!defined $p->[$n]);
+
+ return $p->[$n];
+}
diff --git a/challenge-168/perlboy1967/perl/ch-2.pl b/challenge-168/perlboy1967/perl/ch-2.pl
new file mode 100755
index 0000000000..6f710f9110
--- /dev/null
+++ b/challenge-168/perlboy1967/perl/ch-2.pl
@@ -0,0 +1,47 @@
+#!/bin/perl
+
+=pod
+
+The Weekly Challenge - 168
+ - https://theweeklychallenge.org/blog/perl-weekly-challenge-168/#TASK2
+
+Author: Niels 'PerlBoy' van Dijke
+
+Task 2: Home Prime
+Submitted by: Mohammad S Anwar
+
+You are given an integer greater than 1.
+
+Write a script to find the home prime of the given number.
+
+In number theory, the home prime HP(n) of an integer n greater than 1 is the
+prime number obtained by repeatedly factoring the increasing concatenation of
+prime factors including repetitions.
+
+Further information can be found on Wikipedia and OEIS.
+
+=cut
+
+use v5.16;
+use warnings;
+
+use Math::Prime::XS qw(is_prime);
+use Math::Factor::XS qw(prime_factors);
+use Try::Tiny;
+
+# prototype(s)
+sub homePrime ($);
+
+for my $n (2 .. 1000) {
+ my $h = homePrime($n);
+ printf "%d\t=> %s\n", $n, (!defined $h ? 'Too big to handle' : $h);
+}
+
+sub homePrime ($) {
+ my ($n) = @_;
+
+ try { $n = join '', prime_factors($n) while (!is_prime($n)) }
+ catch { return };
+
+ return $n;
+}
diff --git a/challenge-168/steve-g-lynn/raku/ch-2.p6 b/challenge-168/steve-g-lynn/raku/ch-2.p6
index b4183fd6d3..bfe46ec923 100755
--- a/challenge-168/steve-g-lynn/raku/ch-2.p6
+++ b/challenge-168/steve-g-lynn/raku/ch-2.p6
@@ -1,44 +1,66 @@
#!/usr/bin/raku
+#time (bash command):
+#real 0m0.490s
+#user 0m0.729s
+#sys 0m0.056s
+
+
+# acknowledgement:
+
+# I improved the previous grossly inefficient version
+# (> 1 min script run time) after looking
+# at the raku and python submissions from Roger Bell-West
+
+
+say homeprime(10);
+#773
say homeprime(16);
-# 31636373
-#-- works but slow
+#31636373
#-- sub for home prime
-sub homeprime(Int $n){
+sub homeprime(Int $n) returns Int {
+ $n.Int.is-prime && return $n;
my $ncopy=$n;
while (1) {
- $ncopy=factor($ncopy).Int;
- ($ncopy.is-prime) && last;
+ my $last=$ncopy;
+ $ncopy=factor($ncopy);
+ ($ncopy==$last) && last;
}
return $ncopy;
}
#--sub for factorizing
-multi sub factor (1) {1}
+multi sub factor (1) returns Int {1}
-multi sub factor (Int $n where $n > 1){
-#-- returns string concatenation of prime factors
-# my @primes=prime_sieve($n);
- my @primes=find_primes($n);
- my $retstring="";
- my $ncopy=$n;
+multi sub factor (Int $n where $n > 1) returns Int {
+#-- returns the concatenated prime factors as an int
+ $n.Int.is-prime && (return $n.Int );
+ my $sqrt_n = sqrt($n).Int+1;
+ my @primes=find_primes($sqrt_n);
+ my @factors=();
- ($n.is-prime) && (return $n);
+ my $retstring="";
+ my $ncopy=$n;
for @primes -> $prime {
while ( ($ncopy % $prime)==0) {
$ncopy /= $prime;
- $retstring ~= $prime;
+ push @factors, $prime;
}
}
- return $retstring;
+ ($ncopy > 1) && push @factors, $ncopy;
+ #-- any factor bigger than sqrt(n) is a prime factor
+ $retstring = @factors.list.join;
+
+ return $retstring.Int;
}
-multi sub find_primes(Int $n where $n <= 13) {
- my @primes=(2,3,5,7,11,13);
+multi sub find_primes(Int $n where $n <= 100) {
+ my @primes=
+ (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97);
my @retval=();
for @primes -> $prime {
($prime < $n) && (push @retval, $prime);
@@ -46,39 +68,59 @@ multi sub find_primes(Int $n where $n <= 13) {
return (@retval.sort);
}
-multi sub find_primes(Int $n where $n > 13) {
-#-- naive approach by trial factorization
- my @primes=(3,7,11,13);
-
- my $i=13;
-
- while ($i < $n) {
- #-- count only odd numbers not ending in 5. Take 4 at a time.
- my @testarray=();
-
- (($i+4) < $n) && (push @testarray, ($i+4));
- (($i+6) < $n) && (push @testarray, ($i+6));
- (($i+8) < $n) && (push @testarray, ($i+8));
- (($i+10) < $n) && (push @testarray, ($i+10));
-
- while (@testarray.elems > 0) {
- my $testitem=shift(@testarray);
- unless ((($testitem % 6)==1) || (($testitem % 6)==5)) {
- #-- use the property that prime numbers above 5 are 6k+1 or 6k-1
- next;
- }
- for @primes -> $prime {
- ($prime > sqrt($testitem)) && last;
- (($testitem % $prime)==0) && last;
- }
- push @primes, $testitem;
- }
- $i += 10;
- }
-
- splice(@primes,0,1, <2 3 5>); #-- left out 2 and 5 earlier to avoid
- # unnecessary redundant factorizing
- return (@primes.sort);
+multi sub find_primes (Int $n where $n > 100) {
+ my @primes=[7,11,13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]; #-- candidate primes
+ my %primes{Int}=(); #-- we will return keys of this
+ my $sqrt_n = sqrt($n); #-- ceiling for iterating thru' sieve
+
+ #-- initialize primes hash
+ #-- store candidates of the form 6k-1 to 6k+1
+ #-- eliminate multiples of known primes
+ loop (my $i=102; $i <= $n+1; $i += 6) {
+ my @temp=($i-1, $i+1);
+ TEMP: for @temp -> $temp {
+ ($temp % 3) || next;
+ ($temp % 5) || next;
+ for @primes -> $prime {
+ ($prime > $sqrt_n) && last;
+ ($temp % $prime) || next TEMP;
+ }
+ ($temp <= $n) && (%primes{$temp}=True);
+ }
+ }
+
+ #-- for prime candidates k greater than @primes[*-1]
+ #-- use odd numbers not divisible by 3 (last value + 4 and +6 if
+ # we start counting from 97)
+ #-- loop through factors kk+jk < n and delete
+ #-- any %hash entries with key matching these factors.
+
+ my $last_prime = @primes[*-1];
+ if ($last_prime < $sqrt_n) {
+ @primes=[$last_prime+4, $last_prime+2];
+ while (1) {
+ my $prime = shift @primes;
+ (@primes.elems==0) &&
+ (@primes.append($prime+4, $prime+2));
+ #-- avoid multiples of 3
+
+ last if $prime > $sqrt_n;
+
+ #-- only loop if the candidate is in the primes hash
+ if ( %primes{$prime} ) {
+ loop (my $i=$prime*$prime;
+ $i <= $n;
+ $i += $prime) {
+ %primes{$i}:delete;
+ }
+ }
+ }
+ }
+ my @retval=(2,3,5,7,11,13,17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97);
+ return (@retval.append(%primes.keys.sort));
+
+ return 1;
}
+
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index bd43401c7c..14e65eb85c 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,29 +1,155 @@
{
+ "series" : [
+ {
+ "name" : "The Weekly Challenge - 168",
+ "colorByPoint" : 1,
+ "data" : [
+ {
+ "y" : 2,
+ "drilldown" : "E. Choroba",
+ "name" : "E. Choroba"
+ },
+ {
+ "drilldown" : "Humberto Massa",
+ "y" : 2,
+ "name" : "Humberto Massa"
+ },
+ {
+ "name" : "James Smith",
+ "drilldown" : "James Smith",
+ "y" : 3
+ },
+ {
+ "name" : "Jorg Sommrey",
+ "y" : 1,
+ "drilldown" : "Jorg Sommrey"
+ },
+ {
+ "name" : "Julien Fiegehenn",
+ "y" : 2,
+ "drilldown" : "Julien Fiegehenn"
+ },
+ {
+ "drilldown" : "Lubos Kolouch",
+ "y" : 1,
+ "name" : "Lubos Kolouch"
+ },
+ {
+ "drilldown" : "Luca Ferrari",
+ "y" : 8,
+ "name" : "Luca Ferrari"
+ },
+ {
+ "drilldown" : "Mark Anderson",
+ "y" : 2,
+ "name" : "Mark Anderson"
+ },
+ {
+ "drilldown" : "Marton Polgar",
+ "y" : 2,
+ "name" : "Marton Polgar"
+ },
+ {
+ "name" : "Niels van Dijke",
+ "y" : 2,
+ "drilldown" : "Niels van Dijke"
+ },
+ {
+ "name" : "Peter Campbell Smith",
+ "drilldown" : "Peter Campbell Smith",
+ "y" : 3
+ },
+ {
+ "name" : "Robert DiCicco",
+ "drilldown" : "Robert DiCicco",
+ "y" : 4
+ },
+ {
+ "name" : "Robert Ransbottom",
+ "y" : 2,
+ "drilldown" : "Robert Ransbottom"
+ },
+ {
+ "y" : 5,
+ "drilldown" : "Roger Bell_West",
+ "name" : "Roger Bell_West"
+ },
+ {
+ "y" : 6,
+ "drilldown" : "Ryan Thompson",
+ "name" : "Ryan Thompson"
+ },
+ {
+ "y" : 4,
+ "drilldown" : "Stephen G Lynn",
+ "name" : "Stephen G Lynn"
+ },
+ {
+ "name" : "W. Luis Mochan",
+ "y" : 3,
+ "drilldown" : "W. Luis Mochan"
+ }
+ ]
+ }
+ ],
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "legend" : {
+ "enabled" : 0
+ },
+ "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
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 168"
+ },
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ }
+ }
+ },
+ "subtitle" : {
+ "text" : "[Champions: 17] Last updated at 2022-06-11 09:33:35 GMT"
+ },
"drilldown" : {
"series" : [
{
+ "id" : "E. Choroba",
"data" : [
[
"Perl",
2
]
],
- "id" : "E. Choroba",
"name" : "E. Choroba"
},
{
"id" : "Humberto Massa",
- "name" : "Humberto Massa",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "name" : "Humberto Massa"
},
{
"id" : "James Smith",
- "name" : "James Smith",
"data" : [
[
"Perl",
@@ -33,30 +159,40 @@
"Blog",
1
]
- ]
+ ],
+ "name" : "James Smith"
+ },
+ {
+ "id" : "Jorg Sommrey",
+ "data" : [
+ [
+ "Perl",
+ 1
+ ]
+ ],
+ "name" : "Jorg Sommrey"
},
{
"name" : "Julien Fiegehenn",
- "id" : "Julien Fiegehenn",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "Julien Fiegehenn"
},
{
+ "id" : "Lubos Kolouch",
"data" : [
[
"Perl",
1
]
],
- "id" : "Lubos Kolouch",
"name" : "Lubos Kolouch"
},
{
- "name" : "Luca Ferrari",
"id" : "Luca Ferrari",
"data" : [
[
@@ -67,21 +203,22 @@
"Blog",
6
]
- ]
+ ],
+ "name" : "Luca Ferrari"
},
{
- "id" : "Mark Anderson",
"name" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "id" : "Mark Anderson"
},
{
- "name" : "Marton Polgar",
"id" : "Marton Polgar",
+ "name" : "Marton Polgar",
"data" : [
[
"Raku",
@@ -90,6 +227,17 @@
]
},
{
+ "name" : "Niels van Dijke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "id" : "Niels van Dijke"
+ },
+ {
+ "id" : "Peter Campbell Smith",
"data" : [
[
"Perl",
@@ -100,12 +248,9 @@
1
]
],
- "id" : "Peter Campbell Smith",
"name" : "Peter Campbell Smith"
},
{
- "id" : "Robert DiCicco",
- "name" : "Robert DiCicco",
"data" : [
[
"Perl",
@@ -115,10 +260,21 @@
"Raku",
2
]
+ ],
+ "name" : "Robert DiCicco",
+ "id" : "Robert DiCicco"
+ },
+ {
+ "id" : "Robert Ransbottom",
+ "name" : "Robert Ransbottom",
+ "data" : [
+ [
+ "Raku",
+ 2
+ ]
]
},
{
- "name" : "Roger Bell_West",
"id" : "Roger Bell_West",
"data" : [
[
@@ -133,11 +289,10 @@
"Blog",
1
]
- ]
+ ],
+ "name" : "Roger Bell_West"
},
{
- "name" : "Ryan Thompson",
- "id" : "Ryan Thompson",
"data" : [
[
"Perl",
@@ -151,11 +306,11 @@
"Blog",
2
]
- ]
+ ],
+ "name" : "Ryan Thompson",
+ "id" : "Ryan Thompson"
},
{
- "name" : "Stephen G Lynn",
- "id" : "Stephen G Lynn",
"data" : [
[
"Perl",
@@ -165,11 +320,13 @@
"Raku",
2
]
- ]
+ ],
+ "name" : "Stephen G Lynn",
+ "id" : "Stephen G Lynn"
},
{
- "name" : "W. Luis Mochan",
"id" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan",
"data" : [
[
"Perl",
@@ -182,117 +339,5 @@
]
}
]
- },
- "chart" : {
- "type" : "column"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "subtitle" : {
- "text" : "[Champions: 14] Last updated at 2022-06-09 21:28:57 GMT"
- },
- "title" : {
- "text" : "The Weekly Challenge - 168"
- },
- "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/>"
- },
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- }
- }
- },
- "legend" : {
- "enabled" : 0
- },
- "series" : [
- {
- "colorByPoint" : 1,
- "name" : "The Weekly Challenge - 168",
- "data" : [
- {
- "drilldown" : "E. Choroba",
- "name" : "E. Choroba",
- "y" : 2
- },
- {
- "drilldown" : "Humberto Massa",
- "y" : 2,
- "name" : "Humberto Massa"
- },
- {
- "name" : "James Smith",
- "y" : 3,
- "drilldown" : "James Smith"
- },
- {
- "drilldown" : "Julien Fiegehenn",
- "y" : 2,
- "name" : "Julien Fiegehenn"
- },
- {
- "name" : "Lubos Kolouch",
- "y" : 1,
- "drilldown" : "Lubos Kolouch"
- },
- {
- "drilldown" : "Luca Ferrari",
- "y" : 8,
- "name" : "Luca Ferrari"
- },
- {
- "y" : 2,
- "name" : "Mark Anderson",
- "drilldown" : "Mark Anderson"
- },
- {
- "name" : "Marton Polgar",
- "y" : 2,
- "drilldown" : "Marton Polgar"
- },
- {
- "name" : "Peter Campbell Smith",
- "y" : 3,
- "drilldown" : "Peter Campbell Smith"
- },
- {
- "drill