Nice primes: Difference between revisions

1,605 bytes added ,  2 years ago
Added Algol 68
(Added Algol 68)
Line 22:
::*   The OEIS article:   [http://oeis.org/A78403 A78403 Primes such that digital root is prime].
<br><br>
 
=={{header|ALGOL 68}}==
<lang algol68>BEGIN # find nice primes - primes whose digital root is also prime #
INT min prime = 501;
INT max prime = 999;
# sieve the primes to max prime #
[ 1 : max prime ]BOOL prime;
prime[ 1 ] := FALSE; prime[ 2 ] := TRUE;
FOR i FROM 3 BY 2 TO UPB prime DO prime[ i ] := TRUE OD;
FOR i FROM 4 BY 2 TO UPB prime DO prime[ i ] := FALSE OD;
FOR i FROM 3 BY 2 TO ENTIER sqrt( max prime ) DO
IF prime[ i ] THEN FOR s FROM i * i BY i + i TO UPB prime DO prime[ s ] := FALSE OD FI
OD;
# find the nice primes #
INT nice count := 0;
FOR n FROM min prime TO max prime DO
IF prime[ n ] THEN
# have a prime #
INT digit sum := 0;
INT v := n;
WHILE digit sum := 0;
WHILE v > 0 DO
digit sum +:= v MOD 10;
v OVERAB 10
OD;
digit sum > 9
DO
v := digit sum
OD;
IF prime( digit sum ) THEN
# the digital root is prime #
nice count +:= 1;
print( ( " ", whole( n, -3 ), "(", whole( digit sum, 0 ), ")" ) );
IF nice count MOD 12 = 0 THEN print( ( newline ) ) FI
FI
FI
OD
END</lang>
{{out}}
<pre>
509(5) 547(7) 563(5) 569(2) 587(2) 599(5) 601(7) 617(5) 619(7) 641(2) 653(5) 659(2)
673(7) 677(2) 691(7) 709(7) 727(7) 743(5) 761(5) 797(5) 821(2) 839(2) 853(7) 857(2)
887(5) 907(7) 911(2) 929(2) 941(5) 947(2) 977(5) 983(2) 997(7)
</pre>
 
=={{header|ALGOL W}}==
Line 105 ⟶ 149:
33:997 dr(7)
</pre>
 
=={{header|APL}}==
{{works with|Dyalog APL}}
3,037

edits