Don't like ads? PRO users don't see any ads ;-)
Guest

Recursive solution

By: a guest on May 6th, 2012  |  syntax: PHP  |  size: 0.52 KB  |  hits: 19  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/usr/bin/env php
  2.  
  3. <?php
  4. echo calc( isset($argv[1]) ? $argv[1] : 600851475143 ) . "\n";
  5.  
  6. function calc( $num, $i=3, $prime=0, $sqrt=-1 ) {
  7.   if ($sqrt < 0) $sqrt = ceil(sqrt($num));
  8.   if ($i >= $sqrt) return $prime;
  9.   if ($num % $i == 0)
  10.     if (prime($i))
  11.       $prime = $i;
  12.   return calc($num, ++$i, $prime, $sqrt);
  13. }
  14.  
  15. function prime( $num, $i=2, $sqrt=-1 ) {
  16.   if ($sqrt < 0) $sqrt = ceil(sqrt($num));
  17.   if ($num % $i == 0) return false;
  18.   if ($i > $sqrt) return true;
  19.   return prime($num, ++$i, $sqrt);
  20. }
  21. ?>