Successive prime differences: Difference between revisions
Content added Content deleted
(Order) |
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Add a Perl 6 example) |
||
Line 26: | Line 26: | ||
<br>Note: Generation of a list of primes is a secondary aspect of the task. Use of a built in function, well known library, or importing/use of prime generators from other [[Sieve of Eratosthenes|Rosetta Code tasks]] is encouraged. |
<br>Note: Generation of a list of primes is a secondary aspect of the task. Use of a built in function, well known library, or importing/use of prime generators from other [[Sieve of Eratosthenes|Rosetta Code tasks]] is encouraged. |
||
=={{header|Perl 6}}== |
|||
{{works with|Rakudo|2019.03}} |
|||
Essentially the code from the [[Sexy_primes#Perl6|Sexy primes]] task with minor tweaks. |
|||
<lang perl6>use Math::Primesieve; |
|||
my $sieve = Math::Primesieve.new; |
|||
my $max = 1_000_000; |
|||
my @primes = $sieve.primes($max); |
|||
my $filter = @primes.Set; |
|||
my $primes = @primes.categorize: { .&succesive } |
|||
sub succesive ($i) { |
|||
gather { |
|||
take '2' if $filter{$i + 2}; |
|||
take '1' if $filter{$i + 1}; |
|||
take '2_2' if all($filter{$i «+« (2,4)}); |
|||
take '2_4' if all($filter{$i «+« (2,6)}); |
|||
take '4_2' if all($filter{$i «+« (4,6)}); |
|||
take '6_4_2' if all($filter{$i «+« (6,10,12)}); |
|||
} |
|||
} |
|||
sub comma { $^i.flip.comb(3).join(',').flip } |
|||
for (2,), (1,), (2,2), (2,4), (4,2), (6,4,2) -> $succ { |
|||
say "## Sets of {1+$succ} successive primes <= { comma $max } with " ~ |
|||
"successive differences of {$succ.join: ', ' }"; |
|||
my $i = $succ.join: '_'; |
|||
for 'First', 0, ' Last', * - 1 -> $where, $ind { |
|||
say "$where group: ", join ', ', [\+] flat $primes{$i}[$ind], |$succ |
|||
} |
|||
say ' Count: ', +$primes{$i}, "\n"; |
|||
}</lang> |
|||
{{out}} |
|||
<pre>## Sets of 2 successive primes <= 1,000,000 with successive differences of 2 |
|||
First group: 3, 5 |
|||
Last group: 999959, 999961 |
|||
Count: 8169 |
|||
## Sets of 2 successive primes <= 1,000,000 with successive differences of 1 |
|||
First group: 2, 3 |
|||
Last group: 2, 3 |
|||
Count: 1 |
|||
## Sets of 3 successive primes <= 1,000,000 with successive differences of 2, 2 |
|||
First group: 3, 5, 7 |
|||
Last group: 3, 5, 7 |
|||
Count: 1 |
|||
## Sets of 3 successive primes <= 1,000,000 with successive differences of 2, 4 |
|||
First group: 5, 7, 11 |
|||
Last group: 999431, 999433, 999437 |
|||
Count: 1393 |
|||
## Sets of 3 successive primes <= 1,000,000 with successive differences of 4, 2 |
|||
First group: 7, 11, 13 |
|||
Last group: 997807, 997811, 997813 |
|||
Count: 1444 |
|||
## Sets of 4 successive primes <= 1,000,000 with successive differences of 6, 4, 2 |
|||
First group: 7, 13, 17, 19 |
|||
Last group: 997141, 997147, 997151, 997153 |
|||
Count: 337 |
|||
</pre> |
|||
=={{header|Python}}== |
=={{header|Python}}== |