Successive prime differences: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Add a Perl 6 example) |
(Add Factor 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|Factor}}== |
|||
{{works with|Factor|0.99}} |
|||
<lang factor>USING: formatting fry grouping kernel math math.primes |
|||
math.statistics sequences ; |
|||
IN: rosetta-code.successive-prime-differences |
|||
: seq-diff ( seq diffs -- seq' quot ) |
|||
dup [ length 1 + <clumps> ] dip '[ differences _ sequence= ] |
|||
; inline |
|||
: show ( seq diffs -- ) |
|||
[ "...for differences %u:\n" printf ] keep seq-diff |
|||
[ find nip { } like ] |
|||
[ find-last nip { } like ] |
|||
[ count ] 2tri |
|||
"First group: %u\nLast group: %u\nCount: %d\n\n" printf ; |
|||
: successive-prime-differences ( -- ) |
|||
"Groups of successive primes up to one million...\n" printf |
|||
1,000,000 primes-upto { |
|||
{ 2 } |
|||
{ 1 } |
|||
{ 2 2 } |
|||
{ 2 4 } |
|||
{ 4 2 } |
|||
{ 6 4 2 } |
|||
} [ show ] with each ; |
|||
MAIN: successive-prime-differences</lang> |
|||
{{out}} |
|||
<pre> |
|||
Groups of successive primes up to one million... |
|||
...for differences { 2 }: |
|||
First group: { 3 5 } |
|||
Last group: { 999959 999961 } |
|||
Count: 8169 |
|||
...for differences { 1 }: |
|||
First group: { 2 3 } |
|||
Last group: { 2 3 } |
|||
Count: 1 |
|||
...for differences { 2 2 }: |
|||
First group: { 3 5 7 } |
|||
Last group: { 3 5 7 } |
|||
Count: 1 |
|||
...for differences { 2 4 }: |
|||
First group: { 5 7 11 } |
|||
Last group: { 999431 999433 999437 } |
|||
Count: 1393 |
|||
...for differences { 4 2 }: |
|||
First group: { 7 11 13 } |
|||
Last group: { 997807 997811 997813 } |
|||
Count: 1444 |
|||
...for differences { 6 4 2 }: |
|||
First group: { 31 37 41 43 } |
|||
Last group: { 997141 997147 997151 997153 } |
|||
Count: 306 |
|||
</pre> |
|||
=={{header|Perl 6}}== |
=={{header|Perl 6}}== |