Substring primes: Difference between revisions

Content added Content deleted
m (→‎Using a limit: Replaced getDigits function with a more recently added library function.)
(→‎{{header|ALGOL 68}}: Use ALGOL 68-primes)
Line 13: Line 13:


=={{header|ALGOL 68}}==
=={{header|ALGOL 68}}==
{{libheader|ALGOL 68-primes}}
<lang algol68>BEGIN # find primes where all substrings of the digits are prime #
<lang algol68>BEGIN # find primes where all substrings of the digits are prime #
# reurns a sieve of primes up to n #
PROC sieve = ( INT n )[]BOOL:
BEGIN
[ 1 : n ]BOOL p;
p[ 1 ] := FALSE; p[ 2 ] := TRUE;
FOR i FROM 3 BY 2 TO n DO p[ i ] := TRUE OD;
FOR i FROM 4 BY 2 TO n DO p[ i ] := FALSE OD;
FOR i FROM 3 BY 2 TO ENTIER sqrt( n ) DO
IF p[ i ] THEN FOR s FROM i * i BY i + i TO n DO p[ s ] := FALSE OD FI
OD;
p
END # prime list # ;
# find the primes of interest #
# find the primes of interest #
PR read "primes.incl.a68" PR
INT max number = 500;
[]BOOL prime = sieve( max number );
[]BOOL prime = PRIMESIEVE 500;
FOR p TO UPB prime DO
FOR p TO UPB prime DO
IF prime[ p ] THEN
IF prime[ p ] THEN
INT d := 10;
INT d := 10;
BOOL is substring := TRUE;
BOOL is substring := TRUE;
WHILE is substring AND d <= max number DO
WHILE is substring AND d <= UPB prime DO
INT n := p;
INT n := p;
WHILE is substring AND n > 0 DO
WHILE is substring AND n > 0 DO