Erdös-Selfridge categorization of primes: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (→{{header|Raku}}: Add a Raku example) |
Thundergnat (talk | contribs) m (→{{header|Raku}}: minor style tweaks) |
||
Line 52: | Line 52: | ||
sub Erdös-Selfridge ($n) { |
sub Erdös-Selfridge ($n) { |
||
my @factors = prime-factors($n + 1).unique.grep |
my @factors = prime-factors($n + 1).unique.grep: * > 3; |
||
my $category = 1; |
my $category = 1; |
||
while @factors.elems { |
while @factors.elems { |
||
Line 60: | Line 60: | ||
$category |
$category |
||
} |
} |
||
use Math::Primesieve; |
use Math::Primesieve; |
||
my $sieve = Math::Primesieve.new; |
my $sieve = Math::Primesieve.new; |
||
⚫ | |||
my %category; |
my %category; |
||
$sieve.n-primes(200).map: { %category{ Erdös-Selfridge $_ }.push: $_ } |
$sieve.n-primes(200).map: { %category{ Erdös-Selfridge $_ }.push: $_ } |
||
⚫ | |||
.say for sort %category; |
.say for sort %category; |
||
say "\nFirst million primes; Erdös-Selfridge categorized:"; |
say "\nFirst million primes; Erdös-Selfridge categorized:"; |
||
my @category; |
my @category; |
||
$sieve.n-primes(1_000_000).map: { @category[ Erdös-Selfridge $_ ].push: $_ } |
$sieve.n-primes(1_000_000).map: { @category[ Erdös-Selfridge $_ ].push: $_ } |
||
⚫ | |||
for @category { |
|||
next unless $_; |
|||
⚫ | |||
}</lang> |
|||
{{out}} |
{{out}} |
||
<pre>First 200 primes; Erdös-Selfridge categorized: |
<pre>First 200 primes; Erdös-Selfridge categorized: |