diff options
| -rw-r--r-- | challenge-167/ulrich-rieke/cpp/ch-1.cpp | 86 | ||||
| -rw-r--r-- | challenge-167/ulrich-rieke/perl/ch-1.pl | 44 | ||||
| -rw-r--r-- | stats/pwc-current.json | 201 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 76 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1144 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 378 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 90 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 108 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 56 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 100 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 30 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 48 |
16 files changed, 1338 insertions, 1193 deletions
diff --git a/challenge-167/ulrich-rieke/cpp/ch-1.cpp b/challenge-167/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..92463670fc --- /dev/null +++ b/challenge-167/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,86 @@ +#include <iostream> +#include <map> +#include <list> +#include <algorithm> +#include <vector> +#include <cmath> + +bool isPrime( int number ) { + int stop = std::sqrt( static_cast<double>( number ) ) ; + for ( int i = 2 ; i <= stop ; ++i ) + if ( number % i == 0 ) + return false ; + return true ; +} + +std::list<int> toList( int n ) { + std::list<int> digits ; + while ( n != 0 ) { + digits.push_back( n % 10 ) ; + n /= 10 ; + } + return digits ; +} +//from list to int +int toInt( const std::list<int> & digits ) { + int sum = 0 ; + int multiplier = 1 ; + for ( auto it = digits.begin( ) ; it != digits.end( ) ; ++it ) { + sum += multiplier * *it ; + multiplier *= 10 ; + } + return sum ; +} + +//create cycled digits per performing the rotations on a list of digits +std::list<int> createCycle( int n ) { + std::list<int> cycle ; + std::list<int> digits( toList( n ) ) ; + cycle.push_back( n ) ; + digits.push_back( digits.front( ) ) ; + digits.pop_front( ) ; + int curnum = toInt( digits ) ; + while ( curnum != n ) { + cycle.push_back( curnum ) ; + digits.push_back( digits.front( ) ) ; + digits.pop_front( ) ; + curnum = toInt( digits ) ; + } + return cycle ; +} + +bool isCircularPrime( int n ) { + std::list<int> cycle( createCycle( n ) ) ; + return std::all_of( cycle.begin( ) , cycle.end( ) , isPrime ) ; +} + +int main( ) { + std::vector<int> circularPrimes ; + int current = 100 ; + std::map<int , int> primesSoFar ; + while ( circularPrimes.size( ) != 10 ) { + std::list<int> currentDigits( toList( current ) ) ; + if ( std::find( currentDigits.begin( ) , currentDigits.end( ) , 0 ) + == currentDigits.end( ) ) {//we don't want 0's in the number + if ( isCircularPrime( current )) { + //the following function call may be regarded as wasteful + //considering what I did previously ; it's for the sake of + //clarity + std::list<int> currentCycle = createCycle( current ) ; + if ( std::all_of( currentCycle.begin( ) , currentCycle.end( ) , + [&primesSoFar]( int i ) { return primesSoFar.find( i ) == + primesSoFar.end( ) ; } )) {//all cycled numbers not found + //so far ? + circularPrimes.push_back( current ) ; + for ( int i : currentCycle ) + primesSoFar[ i ]++ ;//add them to the numbers found + } + } + } + current++ ; + } + for ( int i : circularPrimes ) + std::cout << i << ' ' ; + std::cout << std::endl ; + return 0 ; +} diff --git a/challenge-167/ulrich-rieke/perl/ch-1.pl b/challenge-167/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..a198049bd0 --- /dev/null +++ b/challenge-167/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,44 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use List::Util qw ( all none ) ; +use POSIX ; + +sub createCycle { + my $num = shift ; + my @cycle ; + push @cycle , $num ; + my $rotated = substr( $num , 1 ) . substr( $num , 0 , 1 ) ; + while ( $rotated ne $num ) { + push @cycle , $rotated ; + $rotated = substr( $rotated , 1 ) . substr( $rotated , 0 , 1 ) ; + } + return @cycle ; +} + +sub isPrime { + my $number = shift ; + my $stop = sqrt( $number ) ; + for my $i ( 2 .. floor( $stop )) { + if ( $number % $i == 0 ) { + return 0 ; + } + } + return 1 ; +} + +my @circularPrimes ; +my %circularsSeen ; +my $current = 100 ; +while ( scalar( @circularPrimes ) != 10 ) { + if ( $current !~ /0/ ) { + my @cycle = createCycle( $current ) ; + if ( (all { isPrime( $_ ) } @cycle) && (none { $circularsSeen{ $_ } } @cycle )) { + push @circularPrimes , $current ; + map { $circularsSeen{ $_ }++ } @cycle ; + } + } + $current++ ; +} +say join( ', ' , @circularPrimes ) ; diff --git a/stats/pwc-current.json b/stats/pwc-current.json index e4683a6cb8..2f5ea457e0 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,24 +1,69 @@ { - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "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/>" - }, "xAxis" : { "type" : "category" }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "y" : 3, + "name" : "James Smith", + "drilldown" : "James Smith" + }, + { + "drilldown" : "Laurent Rosenfeld", + "y" : 3, + "name" : "Laurent Rosenfeld" + }, + { + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari", + "y" : 6 + }, + { + "name" : "Mark Anderson", + "y" : 2, + "drilldown" : "Mark Anderson" + }, + { + "y" : 1, + "name" : "Niels van Dijke", + "drilldown" : "Niels van Dijke" + }, + { + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", + "y" : 3 + }, + { + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West", + "y" : 4 + }, + { + "drilldown" : "Ryan Thompson", + "name" : "Ryan Thompson", + "y" : 4 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 1 + }, + { + "y" : 3, + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan" + } + ], + "name" : "The Weekly Challenge - 167" + } + ], "drilldown" : { "series" : [ { + "id" : "James Smith", "data" : [ [ "Perl", @@ -29,11 +74,9 @@ 1 ] ], - "name" : "James Smith", - "id" : "James Smith" + "name" : "James Smith" }, { - "name" : "Laurent Rosenfeld", "id" : "Laurent Rosenfeld", "data" : [ [ @@ -48,9 +91,12 @@ "Blog", 1 ] - ] + ], + "name" : "Laurent Rosenfeld" }, { + "name" : "Luca Ferrari", + "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -60,33 +106,29 @@ "Blog", 4 ] - ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + ] }, { - "id" : "Mark Anderson", - "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Mark Anderson", + "name" : "Mark Anderson" }, { + "name" : "Niels van Dijke", "data" : [ [ "Perl", 1 ] ], - "id" : "Niels van Dijke", - "name" : "Niels van Dijke" + "id" : "Niels van Dijke" }, { - "name" : "Peter Campbell Smith", - "id" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -96,9 +138,13 @@ "Blog", 1 ] - ] + ], + "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith" }, { + "name" : "Roger Bell_West", + "id" : "Roger Bell_West", "data" : [ [ "Perl", @@ -108,9 +154,7 @@ "Raku", 2 ] - ], - "name" : "Roger Bell_West", - "id" : "Roger Bell_West" + ] }, { "data" : [ @@ -127,6 +171,17 @@ "name" : "Ryan Thompson" }, { + "id" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 1 + ] + ], + "name" : "Ulrich Rieke" + }, + { + "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -137,79 +192,39 @@ 1 ] ], - "name" : "W. Luis Mochan", - "id" : "W. Luis Mochan" + "name" : "W. Luis Mochan" } ] }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "series" : [ - { - "name" : "The Weekly Challenge - 167", - "colorByPoint" : 1, - "data" : [ - { - "drilldown" : "James Smith", - "name" : "James Smith", - "y" : 3 - }, - { - "y" : 3, - "drilldown" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" - }, - { - "y" : 6, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" - }, - { - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson", - "y" : 2 - }, - { - "y" : 1, - "drilldown" : "Niels van Dijke", - "name" : "Niels van Dijke" - }, - { - "name" : "Peter Campbell Smith", - "drilldown" : "Peter Campbell Smith", - "y" : 3 - }, - { - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West", - "y" : 4 - }, - { - "name" : "Ryan Thompson", - "drilldown" : "Ryan Thompson", - "y" : 4 - }, - { - "y" : 3, - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan" - } - ] - } - ], - "subtitle" : { - "text" : "[Champions: 9] Last updated at 2022-05-31 21:27:00 GMT" - }, - "title" : { - "text" : "The Weekly Challenge - 167" - }, "legend" : { "enabled" : 0 }, + "subtitle" : { + "text" : "[Champions: 10] Last updated at 2022-05-31 21:41:56 GMT" + }, "chart" : { "type" : "column" + }, + "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 + }, + "title" : { + "text" : "The Weekly Challenge - 167" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index fc104af33d..35af42c305 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,17 +1,47 @@ { + "subtitle" : { + "text" : "Last updated at 2022-05-31 21:41:56 GMT" + }, + "chart" : { + "type" : "column" + }, + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2022]" + }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } + }, + "legend" : { + "enabled" : "false" + }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } + } + }, "series" : [ { "dataLabels" : { - "align" : "right", - "enabled" : "true", "rotation" : -90, - "format" : "{point.y:.0f}", + "enabled" : "true", "color" : "#FFFFFF", "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" }, - "y" : 10 + "align" : "right", + "y" : 10, + "format" : "{point.y:.0f}" }, "name" : "Contributions", "data" : [ @@ -21,7 +51,7 @@ ], [ "Perl", - 8132 + 8133 ], [ "Raku", @@ -29,35 +59,5 @@ ] ] } - ], - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "legend" : { - "enabled" : "false" - }, - "chart" : { - "type" : "column" - }, - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2022]" - }, - "subtitle" : { - "text" : "Last updated at 2022-05-31 21:27:00 GMT" - } + ] } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 60f98b1217..bcd86f1819 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,13 +1,16 @@ { + "xAxis" : { + "type" : "category" + }, "series" : [ { "name" : "The Weekly Challenge Languages", "colorByPoint" : "true", "data" : [ { - "y" : 161, "drilldown" : "001", - "name" : "#001" + "name" : "#001", + "y" : 161 }, { "y" : 125, @@ -15,24 +18,24 @@ "drilldown" : "002" }, { + "y" : 83, "name" : "#003", - "drilldown" : "003", - "y" : 83 + "drilldown" : "003" }, { - "y" : 99, + "drilldown" : "004", "name" : "#004", - "drilldown" : "004" + "y" : 99 }, { - "name" : "#005", "drilldown" : "005", + "name" : "#005", "y" : 78 }, { - "name" : "#006", "drilldown" : "006", - "y" : 58 + "y" : 58, + "name" : "#006" }, { "drilldown" : "007", @@ -40,49 +43,49 @@ "y" : 64 }, { + "drilldown" : "008", "y" : 78, - "name" : "#008", - "drilldown" : "008" + "name" : "#008" }, { - "y" : 76, "drilldown" : "009", + "y" : 76, "name" : "#009" }, { - "name" : "#010", "drilldown" : "010", - "y" : 65 + "y" : 65, + "name" : "#010" }, { - "y" : 85, "drilldown" : "011", + "y" : 85, "name" : "#011" }, { "drilldown" : "012", - "name" : "#012", - "y" : 89 + "y" : 89, + "name" : "#012" }, { - "y" : 85, "name" : "#013", + "y" : 85, "drilldown" : "013" }, { - "drilldown" : "014", + "y" : 101, "name" : "#014", - "y" : 101 + "drilldown" : "014" }, { - "name" : "#015", "drilldown" : "015", + "name" : "#015", "y" : 99 }, { + "y" : 71, "name" : "#016", - "drilldown" : "016", - "y" : 71 + "drilldown" : "016" }, { "y" : 84, @@ -91,28 +94,28 @@ }, { "name" : "#018", - "drilldown" : "018", - "y" : 81 + "y" : 81, + "drilldown" : "018" }, { - "y" : 103, "drilldown" : "019", + "y" : 103, "name" : "#019" }, { - "y" : 101, "drilldown" : "020", + "y" : 101, "name" : "#020" }, { + "drilldown" : "021", "y" : 72, - "name" : "#021", - "drilldown" : "021" + "name" : "#021" }, { "drilldown" : "022", - "name" : "#022", - "y" : 68 + "y" : 68, + "name" : "#022" }, { "y" : 97, @@ -126,8 +129,8 @@ }, { "y" : 59, - "drilldown" : "025", - "name" : "#025" + "name" : "#025", + "drilldown" : "025" }, { "y" : 74, @@ -135,18 +138,18 @@ "drilldown" : "026" }, { - "drilldown" : "027", "name" : "#027", - "y" : 62 + "y" : 62, + "drilldown" : "027" }, { "name" : "#028", - "drilldown" : "028", - "y" : 82 + "y" : 82, + "drilldown" : "028" }, { - "name" : "#029", "drilldown" : "029", + "name" : "#029", "y" : 81 }, { @@ -155,58 +158,58 @@ "y" : 119 }, { - "y" : 91, "drilldown" : "031", + "y" : 91, "name" : "#031" }, { + "drilldown" : "032", "y" : 96, - "name" : "#032", - "drilldown" : "032" + "name" : "#032" }, { - "drilldown" : "033", "name" : "#033", - "y" : 112 + "y" : 112, + "drilldown" : "033" }, { - "name" : "#034", "drilldown" : "034", - "y" : 66 + "y" : 66, + "name" : "#034" }, { - "drilldown" : "035", + "y" : 66, "name" : "#035", - "y" : 66 + "drilldown" : "035" }, { - "y" : 70, "name" : "#036", + "y" : 70, "drilldown" : "036" }, { "name" : "#037", - "drilldown" : "037", - "y" : 69 + "y" : 69, + "drilldown" : "037" }, { - "y" : 70, "name" : "#038", + "y" : 70, "drilldown" : "038" }, { "y" : 64, - "drilldown" : "039", - "name" : "#039" + "name" : "#039", + "drilldown" : "039" }, { + "drilldown" : "040", "y" : 75, - "name" : "#040", - "drilldown" : "040" + "name" : "#040" }, { - "name" : "#041", "drilldown" : "041", + "name" : "#041", "y" : 78 }, { @@ -215,44 +218,44 @@ "drilldown" : "042" }, { + "y" : 70, "name" : "#043", - "drilldown" : "043", - "y" : 70 + "drilldown" : "043" }, { "y" : 87, - "drilldown" : "044", - "name" : "#044" + "name" : "#044", + "drilldown" : "044" }, { - "y" : 98, "name" : "#045", + "y" : 98, "drilldown" : "045" }, { + "name" : "#046", "y" : 89, - "drilldown" : "046", - "name" : "#046" + "drilldown" : "046" }, { - "y" : 86, + "drilldown" : "047", "name" : "#047", - "drilldown" : "047" + "y" : 86 }, { - "y" : 110, "drilldown" : "048", + "y" : 110, "name" : "#048" }, { "drilldown" : "049", - "name" : "#049", - "y" : 91 + "y" : 91, + "name" : "#049" }, { - "name" : "#050", "drilldown" : "050", - "y" : 100 + "y" : 100, + "name" : "#050" }, { "y" : 91, @@ -261,13 +264,13 @@ }, { "drilldown" : "052", - "name" : "#052", - "y" : 93 + "y" : 93, + "name" : "#052" }, { "name" : "#053", - "drilldown" : "053", - "y" : 103 + "y" : 103, + "drilldown" : "053" }, { "y" : 105, @@ -275,9 +278,9 @@ "drilldown" : "054" }, { - "drilldown" : "055", "name" : "#055", - "y" : 90 + "y" : 90, + "drilldown" : "055" }, { "y" : 97, @@ -290,54 +293,54 @@ "y" : 82 }, { + "name" : "#058", "y" : 71, - "drilldown" : "058", - "name" : "#058" + "drilldown" : "058" }, { - "name" : "#059", "drilldown" : "059", + "name" : "#059", "y" : 91 }, { + "drilldown" : "060", "y" : 87, - "name" : "#060", - "drilldown" : "060" + "name" : "#060" }, { - "y" : 83, "name" : "#061", + "y" : 83, "drilldown" : "061" }, { - "y" : 60, + "drilldown" : "062", "name" : "#062", - "drilldown" : "062" + "y" : 60 }, { - "y" : 91, "drilldown" : "063", + "y" : 91, "name" : "#063" }, { - "y" : 82, "name" : "#064", + "y" : 82, "drilldown" : "064" }, { + "name" : "#065", "y" : 75, - "drilldown" : "065", - "name" : "#065" + "drilldown" : "065" }, { - "y" : 86, "drilldown" : "066", - "name" : "#066" + "name" : "#066", + "y" : 86 }, { - "y" : 92, + "drilldown" : "067", "name" : "#067", - "drilldown" : "067" + "y" : 92 }, { "drilldown" : "068", @@ -345,23 +348,23 @@ "y" : 77 }, { - "drilldown" : "069", "name" : "#069", - "y" : 85 + "y" : 85, + "drilldown" : "069" }, { - "drilldown" : "070", + "y" : 95, "name" : "#070", - "y" : 95 + "drilldown" : "070" }, { - "drilldown" : "071", + "y" : 80, "name" : "#071", - "y" : 80 + "drilldown" : "071" }, { - "name" : "#072", "drilldown" : "072", + "name" : "#072", "y" : 114 }, { @@ -371,18 +374,18 @@ }, { "drilldown" : "074", - "name" : "#074", - "y" : 117 + "y" : 117, + "name" : "#074" }, { "y" : 117, - "drilldown" : "075", - "name" : "#075" + "name" : "#075", + "drilldown" : "075" }, { - "y" : 101, "drilldown" : "076", - "name" : "#076" + "name" : "#076", + "y" : 101 }, { "drilldown" : "077", @@ -390,49 +393,49 @@ "y" : 100 }, { + "y" : 127, "name" : "#078", - "drilldown" : "078", - "y" : 127 + "drilldown" : "078" }, { - "y" : 122, "drilldown" : "079", - "name" : "#079" + "name" : "#079", + "y" : 122 }, { - "y" : 127, "drilldown" : "080", - "name" : "#080" + "name" : "#080", + "y" : 127 }, { + "name" : "#081", "y" : 114, - "drilldown" : "081", - "name" : "#081" + "drilldown" : "081" }, { - "drilldown" : "082", + "y" : 114, "name" : "#082", - "y" : 114 + "drilldown" : "082" }, { + "y" : 127, "name" : "#083", - "drilldown" : "083", - "y" : 127 + "drilldown" : "083" }, { + "y" : 119, "name" : "#084", - "drilldown" : "084", - "y" : 119 + "drilldown" : "084" }, { "y" : 114, - "drilldown" : "085", - "name" : "#085" + "name" : "#085", + "drilldown" : "085" }, { - "y" : 104, "drilldown" : "086", - "name" : "#086" + "name" : "#086", + "y" : 104 }, { "y" : 101, @@ -440,44 +443,44 |
