Erdös-Selfridge categorization of primes: Difference between revisions

m
→‎{{header|Raku}}: Yet more style twiddling
m (→‎{{header|Raku}}: minor style tweaks)
m (→‎{{header|Raku}}: Yet more style twiddling)
Line 50:
 
<lang perl6>use Prime::Factor;
use Math::Primesieve;
my $sieve = Math::Primesieve.new;
 
sub Erdös-Selfridge ($n) {
my @factors = unique grep * > 3, prime-factors( $n + 1).unique.grep: * > 3;
my $category = 1;
while @factors.elems {
Line 60 ⟶ 62:
$category
}
 
use Math::Primesieve;
my $sieve = Math::Primesieve.new;
 
say "First 200 primes; Erdös-Selfridge categorized:";
my %category = $sieve.n-primes(200).mapcategorize: { %category{ .&Erdös-Selfridge $_ }.push: $_ };
my %category;
$sieve.n-primes(200).map: { %category{ Erdös-Selfridge $_ }.push: $_ }
.say for sort %category;
 
 
say "\nFirst million primes; Erdös-Selfridge categorized:";
%category = $sieve.n-primes(1_000_000).mapcategorize: { @category[ .&Erdös-Selfridge $_ ].push: $_ };
my @category;
printf "Category %2d: first: %7d, last: %8d, total: %d\n", ++$, .[0], .[*-1], .elems for @%category.grep: sort(+*.elemskey)».value;</lang>
$sieve.n-primes(1_000_000).map: { @category[ Erdös-Selfridge $_ ].push: $_ }
printf "Category %2d: first: %7d, last: %8d, total: %d\n", ++$, .[0], .[*-1], .elems for @category.grep: *.elems;</lang>
{{out}}
<pre>First 200 primes; Erdös-Selfridge categorized:
10,327

edits