
Recursive solution
By: a guest on
May 6th, 2012 | syntax:
PHP | size: 0.52 KB | hits: 19 | expires: Never
#!/usr/bin/env php
<?php
echo calc( isset($argv[1]) ? $argv[1] : 600851475143 ) . "\n";
function calc( $num, $i=3, $prime=0, $sqrt=-1 ) {
if ($sqrt < 0) $sqrt = ceil(sqrt($num));
if ($i >= $sqrt) return $prime;
if ($num % $i == 0)
if (prime($i))
$prime = $i;
return calc($num, ++$i, $prime, $sqrt);
}
function prime( $num, $i=2, $sqrt=-1 ) {
if ($sqrt < 0) $sqrt = ceil(sqrt($num));
if ($num % $i == 0) return false;
if ($i > $sqrt) return true;
return prime($num, ++$i, $sqrt);
}
?>