private static function pidigits($n) { //$n = (int) $argv[1]; $i = 0; $pidigit = array(array(1, 0, 0, 1), array(0, 0, 0, 0)); while ($n) { if ($n < 10) { printf("%s%s\t:%d\n", Pidigit_Next($pidigit, $n), str_repeat(' ', 10 - $n), $i + $n); break; } else { printf("%s\t:%d\n", Pidigit_Next($pidigit, 10), $i += 10); } $n -= 10; } }
$tr[2] = 0; return $tr; } function Pidigit_Next(&$pd, $times) { $digits = ''; $z = $pd[0]; do { $y = Transformation_Extract($z, 3); do { $z = Transformation_Compose($z, Transformation_Next($pd[1])); $y = Transformation_Extract($z, 3); } while (0 != gmp_cmp(Transformation_Extract($z, 4), $y)); $z = Transformation_Compose2($y, $z); $digits .= gmp_strval($y); } while (--$times); $pd[0] = $z; return $digits; } $n = (int) $argv[1]; $i = 0; $pidigit = array(array(1, 0, 0, 1), array(0, 0, 0, 0)); while ($n) { if ($n < 10) { printf("%s%s\t:%d\n", Pidigit_Next($pidigit, $n), str_repeat(' ', 10 - $n), $i + $n); break; } else { printf("%s\t:%d\n", Pidigit_Next($pidigit, 10), $i += 10); } $n -= 10; }