Primes whose first and last number is 3: Difference between revisions

Added Algol W
(→‎{{header|Go}}: Added stretch goal.)
(Added Algol W)
Line 10:
Find and show only the   ''number''   of these types of primes   that are   '''<   1,000,000'''.
<br><br>
 
=={{header|ALGOL W}}==
As with the Go and oher samples, finds the numbers by generating the candidate seuence.
<lang algolw>begin % find some primes whose first and last digits are 3 %
integer MAX_PRIME;
MAX_PRIME := 4000;
begin
logical array isPrime ( 1 :: MAX_PRIME );
integer p3Count;
% increments n by 1 %
integer procedure inc( integer value result n ) ; begin n := n + 1; n end;
% prints n, if it is prime, handles newlines %
procedure p ( integer value n ) ;
if isPrime( n ) then begin writeon( i_w := 4, s_w := 0, " ", n ); if inc( p3Count ) rem 12 = 0 then write() end;
% sieve the primes to MAX_PRIME %
isPrime( 1 ) := false; isPrime( 2 ) := true;
for i := 3 step 2 until MAX_PRIME do isPrime( i ) := true;
for i := 4 step 2 until MAX_PRIME do isPrime( i ) := false;
for i := 3 step 2 until truncate( sqrt( MAX_PRIME ) ) do begin
integer ii; ii := i + i;
if isPrime( i ) then for pr := i * i step ii until MAX_PRIME do isPrime( pr ) := false
end for_i ;
% find the 3x3 primes %
p3Count := 0;
% 1, 2 and 3 digit 3x3 primes %
p( 3 ); p( 33 ); for i := 0 step 10 until 90 do p( 303 + i );
% 4 digit 3x3 primes %
for i := 0 step 10 until 990 do p( 3003 + i );
end
end.</lang>
{{out}}
<pre>
3 313 353 373 383 3023 3083 3163 3203 3253 3313 3323
3343 3373 3413 3433 3463 3533 3583 3593 3613 3623 3643 3673
3733 3793 3803 3823 3833 3853 3863 3923 3943
</pre>
 
=={{header|Go}}==
3,022

edits