Largest prime factor: Difference between revisions

Added Algol 68
(→‎{{header|Raku}}: add example of much faster version using external library)
(Added Algol 68)
Line 5:
<br>What is the largest prime factor of the number 600851475143 ?
<br><br>
 
=={{header|ALGOL 68}}==
Based on the Wren and Go samples.
<lang algol68>BEGIN # find the largest prime factor of a number #
# returns the largest prime factor of n #
PROC max prime factor = ( LONG INT n )LONG INT:
IF n < 2
THEN 1
ELSE
LONG INT max factor := 1;
# even factors - only 2 is prime #
LONG INT v := n;
WHILE NOT ODD v DO
max factor := 2;
v OVERAB 2
OD;
# odd factors #
LONG INT k := 3;
WHILE k * k <= n DO
WHILE v MOD k = 0 DO
max factor := k;
v OVERAB k
OD;
k +:= 2
OD;
IF v = 1 THEN max factor ELSE n FI
FI # max prime factor # ;
LONG INT n = 600 851 475 143;
print( ( "Largest prime factor of ", whole( n, 0 ), " is ", whole( max prime factor( n ), 0 ), newline ) )
END</lang>
{{out}}
<pre>
Largest prime factor of 600851475143 is 6857
</pre>
 
=={{header|BASIC}}==
3,038

edits