Successive prime differences: Difference between revisions

Added Perl example
(→‎{{header|Perl 6}}: Added 2nd Perl 6 solution)
(Added Perl example)
Line 198:
Number found = 306
</pre>
 
=={{header|Perl}}==
{{libheader|ntheory}}
<lang perl>use 5.010;
use strict;
use warnings;
no warnings 'experimental::smartmatch';
 
use List::EachCons;
use ntheory 'primes';
 
my $limit = 1E6;
my @primes = (2, @{ primes($limit) });
my @intervals = map { $primes[$_] - $primes[$_-1] } 1..$#primes;
 
say "Groups of successive primes <= $limit";
 
for my $diffs ([2], [1], [2,2], [2,4], [4,2], [6,4,2]) {
my $n = -1;
my @offsets = grep {$_} each_cons @$diffs, @intervals, sub { $n++; $n if @_ ~~ @$diffs };
printf "%10s has %5d sets: %15s … %s\n",
'(' . join(' ',@$diffs) . ')',
scalar @offsets,
join(' ', @primes[$offsets[ 0]..($offsets[ 0]+@$diffs)]),
join(' ', @primes[$offsets[-1]..($offsets[-1]+@$diffs)]);
}</lang>
{{out}}
<pre> (2) has 8169 sets: 3 5 … 999959 999961
(1) has 1 sets: 2 3 … 2 3
(2 2) has 1 sets: 3 5 7 … 3 5 7
(2 4) has 1393 sets: 5 7 11 … 999431 999433 999437
(4 2) has 1444 sets: 7 11 13 … 997807 997811 997813
(6 4 2) has 306 sets: 31 37 41 43 … 997141 997147 997151 997153</pre>
 
=={{header|Perl 6}}==
2,392

edits