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 |
INT max prime = 100; # guess of how large the primes we need are # |
||
INT max pi |
INT max pi = 21; |
||
PR read "primes.incl.a68" PR |
|||
[]BOOL prime |
[]BOOL prime = PRIMESIEVE max prime; |
||
INT pi := 0; |
INT pi := 0; |
||
FOR i TO |
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}}== |
||