Piprimes: Difference between revisions

Content added Content deleted
m (→‎{{header|REXX}}: changed whitespace and comments, added a foot separator for the output.)
(→‎{{header|ALGOL 68}}: Use ALGOL 68-primes)
Line 13: Line 13:


=={{header|ALGOL 68}}==
=={{header|ALGOL 68}}==
{{libheader|ALGOL 68-primes}}
<lang algol68>BEGIN # Show some values of pi(n) - the number of priems <= n #
<lang algol68>BEGIN # Show some values of pi(n) - the number of priems <= n #
# reurns a sieve of primes up to n #
PROC prime 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 sieve # ;
# show pi(n) for n up to 21 #
# show pi(n) for n up to 21 #
INT max number = 100; # guess of how large the primes we need are #
INT max prime = 100; # guess of how large the primes we need are #
INT max pi = 21;
INT max pi = 21;
PR read "primes.incl.a68" PR
[]BOOL prime = prime sieve( max number );
[]BOOL prime = PRIMESIEVE max prime;
INT pi := 0;
INT pi := 0;
FOR i TO max number
FOR i TO UPB prime
WHILE IF prime[ i ] THEN pi +:= 1 FI;
WHILE IF prime[ i ] THEN pi +:= 1 FI;
pi <= max pi
pi <= max pi
Line 50: Line 40:
20 20 21 21 21 21 21 21
20 20 21 21 21 21 21 21
</pre>
</pre>

=={{header|Arturo}}==
=={{header|Arturo}}==