Neighbour primes: Difference between revisions

Added Algol 68
(Added 11l)
(Added Algol 68)
Line 53:
439 443 194479
487 491 239119
</pre>
 
=={{header|ALGOL 68}}==
Very similar to [[Special_neighbor_primes#ALGOL_68|The ALGOL 68 sample in the Special neighbor primes task]]
<syntaxhighlight lang="algol68">
BEGIN # find adjacent primes p1, p2 such that p1*p2 + 2 s also prime #
PR read "primes.incl.a68" PR
INT max prime = 500;
[]BOOL prime = PRIMESIEVE ( ( max prime * max prime ) + 2 ); # sieve the primes to max prime ^ 2 + 2 #
[]INT low prime = EXTRACTPRIMESUPTO max prime FROMPRIMESIEVE prime; # get a list of the primes up to max prime #
# find the adjacent primes p1, p2 such that p1*p2 + 2 is prime #
FOR i TO UPB low prime - 1 DO
IF INT p1 p2 plus 2 = ( low prime[ i ] * low prime[ i + 1 ] ) + 2;
prime[ p1 p2 plus 2 ]
THEN print( ( "(", whole( low prime[ i ], -3 )
, " *", whole( low prime[ i + 1 ], -3 )
, " ) + 2 = ", whole( p1 p2 plus 2, -6 )
, newline
)
)
FI
OD
END
</syntaxhighlight>
{{out}}
<pre>
( 3 * 5 ) + 2 = 17
( 5 * 7 ) + 2 = 37
( 7 * 11 ) + 2 = 79
( 13 * 17 ) + 2 = 223
( 19 * 23 ) + 2 = 439
( 67 * 71 ) + 2 = 4759
(149 *151 ) + 2 = 22501
(179 *181 ) + 2 = 32401
(229 *233 ) + 2 = 53359
(239 *241 ) + 2 = 57601
(241 *251 ) + 2 = 60493
(269 *271 ) + 2 = 72901
(277 *281 ) + 2 = 77839
(307 *311 ) + 2 = 95479
(313 *317 ) + 2 = 99223
(397 *401 ) + 2 = 159199
(401 *409 ) + 2 = 164011
(419 *421 ) + 2 = 176401
(439 *443 ) + 2 = 194479
(487 *491 ) + 2 = 239119
</pre>
 
3,038

edits