Neighbour primes: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
(Added Algol 68) |
||
Line 53: | Line 53: | ||
439 443 194479 |
439 443 194479 |
||
487 491 239119 |
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> |
</pre> |
||