function largestPrimeFactor($n) {
$div = 2;
$maxPFact = -1;
while ($n != 0) {
if ($n % $div != 0) {
$div++;
} else {
$maxPFact = $n;
$n /= $div;
if ($n == 1) {
break;
}
}
}
return $maxPFact;
}
echo largestPrimeFactor(124) . "\n"; // 2 x 2 x 31
echo largestPrimeFactor(288) . "\n"; // 2 x 2 x 2 x 2 x 2 x 3 x 3
echo largestPrimeFactor(1288) . "\n"; // 2 x 2 x 2 x 7 x 23
echo largestPrimeFactor(100000000) . "\n"; // 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5
/*
run:
31
3
23
5
*/