Jump to content

Primality by trial division: Difference between revisions

no edit summary
m (→‎Functional: version number)
No edit summary
Line 478:
end if;
end Test_Prime;</syntaxhighlight>
 
=={{header|ALGOL 60}}==
<works with|A60>
<syntax highlight lang = "algol">
begin
 
boolean procedure isprime(n);
value n; integer n;
begin
comment - local procedure tests whether n is even;
boolean procedure even(n);
value n; integer n;
even := entier(n / 2) * 2 = n;
 
if n < 2 then
isprime := false
else if even(n) then
isprime := (n = 2)
else
begin
comment - check odd divisors up to sqrt(n);
integer i, limit;
boolean divisible;
i := 3;
limit := entier(sqrt(n));
divisible := false;
for i := i while i <= limit and not divisible do
begin
if entier(n / i) * i = n then
divisible := true;
i := i + 2
end;
isprime := if divisible then false else true;
end;
end;
 
comment - exercise the procedure;
integer i;
outstring(1,"Testing first 50 numbers for primality:\n");
for i := 1 step 1 until 50 do
if isprime(i) then
outinteger(1,i);
 
end
</syntaxhighlight>
{{out}}
<pre>
Testing first 50 numbers for primality:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
</pre>
 
 
 
=={{header|ALGOL 68}}==
211

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.