- var_dump: documentation ( source)
- floor: documentation ( source)
- sqrt: documentation ( source)
<?php
function greatest_prime($n)
{
for($x1 = (int)floor(sqrt($n)); $x1 > 3; $x1--)
{
if($n % $x1 != 0)
continue;
$x2 = $n/$x1;
if(is_prime($x1))
return $x1;
if(is_prime($x2))
return $x2;
}
}
function is_prime($x)
{
for($y = (int)floor(sqrt($x)); $y > 1; $y--)
if($x % $y == 0)
return false;
return true;
}
var_dump(greatest_prime(600851475143));