Largest prime factor: Difference between revisions

Added PL/I
(→‎{{header|ALGOL 68}}: Optimisation and more test cases)
(Added PL/I)
Line 167:
print(A[matsize(A)[1],1])</lang>
{{out}}<pre>6857</pre>
 
=={{header|PL/I}}==
Based on the Wren, Go and Algol 68 samples.
<lang pli>/* find the largest prime factor of 600851475143 */
largestPrimeFactor: procedure options( main );
declare ( n, maxFactor, v, k, rootN ) decimal( 12 )fixed;
n = 600851475143;
maxFactor = 1;
/* even factors */
v = n;
do while( mod( v, 2 ) = 0 );
maxFactor = 2;
v = v / 2;
end;
/* odd factors */
k = 3;
rootN = sqrt( n );
do while( k <= rootN & v > 1 );
do while( mod( v, k ) = 0 & v > 1 );
maxFactor = k;
v = v / k;
end;
k = k + 2;
end;
if v > 1 then maxFactor = v;
put skip list( 'Largest prime factor of ', n, ' is ', maxFactor );
end largestPrimeFactor;</lang>
{{out}}
<pre>
Largest prime factor of 600851475143 is 6857
</pre>
 
=={{header|Raku}}==
3,043

edits