eXorithm – Execute Algorithm: View / Run Algorithm pi_digits

Logo Beta

function pi_digits ($digits
{
  $n = floor$digits * 14/4);
  
  $scale = 10000;
  $init = 2000;
  $carry = 0;
  $result = ''
  
  for$i=0;$i<=$n$i++) {
    $arr$i] = $init
  }
  
  for$i$n$i>0;$i$i-14) {  
    $sum = 0;  
    for$j$i$j>0;$j--) {  
      $sum = ($sum * $j) + ($scale * $arr$j]);  
      $arr$j] = $sum % (($j*2)-1);  
      $sum = floor$sum / (($j*2)-1));  
    }
    $result .= sprintf"%04d", ($carry + ($sum / $scale)));
    $carry = $sum % $scale;  
  }
  
  if ($digits>1) {
    return $result[0].'.'substr$result,1,$digits-1);
  } else {
    return substr$result,0,$digits);
  }