Jump to content

Largest prime factor: Difference between revisions

→‎{{header|ALGOL 68}}: Optimisation and more test cases
(→‎{{header|ALGOL 68}}: another bug fix)
(→‎{{header|ALGOL 68}}: Optimisation and more test cases)
Line 23:
# odd factors #
LONG INT k := 3;
WHILELONG kINT *root kn <= ENTIER long sqrt( n DO);
WHILE k <= root WHILEn AND v MOD k => 01 DO
WHILE v MOD k = 0 AND v > 1 DO
max factor := k;
v OVERAB k
Line 32 ⟶ 33:
IF v > 1 THEN v ELSE max factor FI
FI # max prime factor # ;
# test the max prime factor routine #
LONGPROC INT ntest = 600( 851LONG 475INT n 143;)VOID:
print( ( "Largest prime factor of ", whole( n, 0 ), " is ", whole( max prime factor( n ), 0 ), newline ) );
# test cases #
test( 600 851 475 143 );
test( 6 008 );
test( 751 )
END</lang>
{{out}}
<pre>
Largest prime factor of 600851475143 is 6857
Largest prime factor of 6008 is 751
Largest prime factor of 751 is 751
</pre>
 
3,044

edits

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