Find prime n such that reversed n is also prime: Difference between revisions

Content added Content deleted
(Add Modula-2)
Line 585: Line 585:
{{out}}
{{out}}
<pre>{2,3,5,7,11,13,17,31,37,71,73,79,97,101,107,113,131,149,151,157,167,179,181,191,199,311,313,337,347,353,359,373,383,389}</pre>
<pre>{2,3,5,7,11,13,17,31,37,71,73,79,97,101,107,113,131,149,151,157,167,179,181,191,199,311,313,337,347,353,359,373,383,389}</pre>

=={{header|Modula-2}}==
<lang modula2>MODULE ReversePrime;
FROM InOut IMPORT WriteCard, WriteLn;

CONST
Primes = 1000;
Max = 500;

VAR prime: ARRAY [1..Primes] OF BOOLEAN;
n, col: CARDINAL;

PROCEDURE reverse(n: CARDINAL): CARDINAL;
VAR r: CARDINAL;
BEGIN
r := 0;
WHILE n > 0 DO
r := r*10 + n MOD 10;
n := n DIV 10;
END;
RETURN r;
END reverse;

PROCEDURE Sieve;
VAR i, j: CARDINAL;
BEGIN
prime[1] := FALSE;
FOR i := 2 TO Primes DO
prime[i] := TRUE;
END;
FOR i := 2 TO Primes DIV 2 DO
j := i*2;
WHILE j <= Primes DO
prime[j] := FALSE;
j := j + i;
END;
END;
END Sieve;

BEGIN
Sieve();
col := 0;
FOR n := 2 TO Max DO
IF prime[n] AND prime[reverse(n)] THEN
WriteCard(n,5);
col := col + 1;
IF col MOD 8 = 0 THEN
WriteLn();
END;
END;
END;
WriteLn();
END ReversePrime.</lang>
{{out}}
<pre> 2 3 5 7 11 13 17 31
37 71 73 79 97 101 107 113
131 149 151 157 167 179 181 191
199 311 313 337 347 353 359 373
383 389</pre>


=={{header|Nim}}==
=={{header|Nim}}==