Pell numbers: Difference between revisions

→‎{{header|ALGOL 68}}: Added works with and removed unused procedure
(Added Algol 68)
(→‎{{header|ALGOL 68}}: Added works with and removed unused procedure)
Line 97:
=={{header|ALGOL 68}}==
{{Trans|FreeBASIC|using Millar Rabin for finding Pell primes and some minor output format differences and showing 10 Pell primes}}
{{works with|ALGOL 68G|Any - tested with release 2.8.3.win32}}
Assumes LONG INT is large enough to hold the 90th Pell number (as in Algol 68G, versions 2 and 3).
Should work with any implementation of Algol 68 if LONG INT is large enough to hold the 90th Pell number/
{{libheader|ALGOL 68-primes}}
<syntaxhighlight lang="algol68">
Line 103 ⟶ 104:
 
PR read "primes.incl.a68" PR
 
PROC is prime = ( LONG INT v )BOOL:
IF v < 2 THEN FALSE
ELIF v MOD 2 = 0 THEN v = 2
ELIF v MOD 3 = 0 THEN v = 3
ELSE
LONG INT d := 5;
BOOL result := TRUE;
WHILE result AND d * d <= v DO
IF v MOD d = 0
THEN result := FALSE
ELSE
d +:= 2;
IF v MOD d = 0
THEN result := FALSE
ELSE d +:= 4
FI
FI
OD;
result
FI # is prime # ;
 
INT n;
3,022

edits