Find adjacent primes which differ by a square integer: Difference between revisions

Content added Content deleted
(Added Algol 68)
(→‎{{header|Raku}}: Anything worth doing is worth over-doing...)
Line 271: Line 271:


my $iterator = Math::Primesieve::iterator.new;
my $iterator = Math::Primesieve::iterator.new;
my $limit = 1e8;
my $limit = 1e10;
my @squares = (1..100).map: *²;
my @squares = (1..30).map: *²;
my $last = 2;
my $last = 2;
my @gaps;
my @gaps;
Line 278: Line 278:
loop {
loop {
my $this = (my $p = $iterator.next) - $last;
my $this = (my $p = $iterator.next) - $last;
@gaps[$this].push: $last;
quietly @gaps[$this].push($last) if +@gaps[$this] < 10;
last if $p > $limit;
last if $p > $limit;
$last = $p;
$last = $p;
Line 287: Line 287:
my $ten = ($p.value > 10) ?? ', (first ten)' !! '';
my $ten = ($p.value > 10) ?? ', (first ten)' !! '';
say "\nGap {$p.key}: {comma +$p.value} found$ten:";
say "\nGap {$p.key}: {comma +$p.value} found$ten:";
put join "\n", $p.value.head(10).batch(5)».map({"($_, {$_+ $p.key})"})».join(', ');
put join "\n", $p.value.batch(5)».map({"($_, {$_+ $p.key})"})».join(', ');
}</lang>
}</lang>
{{out}}
{{out}}
<pre>Adjacent primes up to 100,000,000 with a gap value that is a perfect square:
<pre>Adjacent primes up to 10,000,000,000 with a gap value that is a perfect square:
Gap 1: 1 found:
Gap 1: 1 found:
(2, 3)
(2, 3)


Gap 4: 440,257 found, (first ten):
Gap 4: 10 found:
(7, 11), (13, 17), (19, 23), (37, 41), (43, 47)
(7, 11), (13, 17), (19, 23), (37, 41), (43, 47)
(67, 71), (79, 83), (97, 101), (103, 107), (109, 113)
(67, 71), (79, 83), (97, 101), (103, 107), (109, 113)


Gap 16: 215,804 found, (first ten):
Gap 16: 10 found:
(1831, 1847), (1933, 1949), (2113, 2129), (2221, 2237), (2251, 2267)
(1831, 1847), (1933, 1949), (2113, 2129), (2221, 2237), (2251, 2267)
(2593, 2609), (2803, 2819), (3121, 3137), (3373, 3389), (3391, 3407)
(2593, 2609), (2803, 2819), (3121, 3137), (3373, 3389), (3391, 3407)


Gap 36: 114,028 found, (first ten):
Gap 36: 10 found:
(9551, 9587), (12853, 12889), (14107, 14143), (15823, 15859), (18803, 18839)
(9551, 9587), (12853, 12889), (14107, 14143), (15823, 15859), (18803, 18839)
(22193, 22229), (22307, 22343), (22817, 22853), (24281, 24317), (27143, 27179)
(22193, 22229), (22307, 22343), (22817, 22853), (24281, 24317), (27143, 27179)


Gap 64: 8,823 found, (first ten):
Gap 64: 10 found:
(89689, 89753), (107377, 107441), (288583, 288647), (367957, 368021), (381103, 381167)
(89689, 89753), (107377, 107441), (288583, 288647), (367957, 368021), (381103, 381167)
(400759, 400823), (445363, 445427), (623107, 623171), (625699, 625763), (637003, 637067)
(400759, 400823), (445363, 445427), (623107, 623171), (625699, 625763), (637003, 637067)


Gap 100: 878 found, (first ten):
Gap 100: 10 found:
(396733, 396833), (838249, 838349), (1313467, 1313567), (1648081, 1648181), (1655707, 1655807)
(396733, 396833), (838249, 838349), (1313467, 1313567), (1648081, 1648181), (1655707, 1655807)
(2345989, 2346089), (2784373, 2784473), (3254959, 3255059), (3595489, 3595589), (4047157, 4047257)
(2345989, 2346089), (2784373, 2784473), (3254959, 3255059), (3595489, 3595589), (4047157, 4047257)


Gap 144: 51 found, (first ten):
Gap 144: 10 found:
(11981443, 11981587), (18687587, 18687731), (20024339, 20024483), (20388583, 20388727), (21782503, 21782647)
(11981443, 11981587), (18687587, 18687731), (20024339, 20024483), (20388583, 20388727), (21782503, 21782647)
(25507423, 25507567), (27010003, 27010147), (28716287, 28716431), (31515413, 31515557), (32817493, 32817637)
(25507423, 25507567), (27010003, 27010147), (28716287, 28716431), (31515413, 31515557), (32817493, 32817637)


Gap 196: 1 found:
Gap 196: 10 found:
(70396393, 70396589), (191186251, 191186447), (208744777, 208744973), (233987851, 233988047), (288568771, 288568967)
(70396393, 70396589)</pre>
(319183093, 319183289), (336075937, 336076133), (339408151, 339408347), (345247753, 345247949), (362956201, 362956397)

Gap 256: 10 found:
(1872851947, 1872852203), (2362150363, 2362150619), (2394261637, 2394261893), (2880755131, 2880755387), (2891509333, 2891509589)
(3353981623, 3353981879), (3512569873, 3512570129), (3727051753, 3727052009), (3847458487, 3847458743), (4008610423, 4008610679)
</pre>


=={{header|Ring}}==
=={{header|Ring}}==