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);

  }