Piprimes: Difference between revisions
Content added Content deleted
(Added Wren) |
(Added Algol 68) |
||
Line 11: | Line 11: | ||
:* the OEIS entry: [http://oeis.org/A000720 A0000720 pi(n), the number of primes <= n. Sometimes called PrimePi(n)...]. |
:* the OEIS entry: [http://oeis.org/A000720 A0000720 pi(n), the number of primes <= n. Sometimes called PrimePi(n)...]. |
||
<br><br> |
<br><br> |
||
=={{header|ALGOL 68}}== |
|||
<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 # |
|||
INT max number = 100; # guess of how large the primes we need are # |
|||
INT max pi = 21; |
|||
[]BOOL prime = prime sieve( max number ); |
|||
INT pi := 0; |
|||
FOR i TO max number |
|||
WHILE IF prime[ i ] THEN pi +:= 1 FI; |
|||
pi <= max pi |
|||
DO |
|||
print( ( " ", whole( pi, -2 ) ) ); |
|||
IF i MOD 10 = 0 THEN print( ( newline ) ) FI |
|||
OD |
|||
END</lang> |
|||
{{out}} |
|||
<pre> |
|||
0 1 2 2 3 3 4 4 4 4 |
|||
5 5 6 6 6 6 7 7 8 8 |
|||
8 8 9 9 9 9 9 9 10 10 |
|||
11 11 11 11 11 11 12 12 12 12 |
|||
13 13 14 14 14 14 15 15 15 15 |
|||
15 15 16 16 16 16 16 16 17 17 |
|||
18 18 18 18 18 18 19 19 19 19 |
|||
20 20 21 21 21 21 21 21 |
|||
</pre> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |