<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">#!/usr/bin/perl -w
our $base=247;
my $outbase=10;

my $dp=shift;
my $it=shift ||$dp;
my @n=(1);
my @d=(1);
for my $m (1..$it) {
    multby($m,\@n);
    plusplus(\@n);
    multby($m,\@d);
}
for(1..$dp) {
my $digit=0;
    while (!greaterthan(\@n,\@d)) {
	$digit++;
	subtract(\@n,\@d);
    }
    print "$digit";
    multby($outbase,\@n);
}
print "\n";

sub multby {
    my ($n, $m)=@_;
    my @f;
    use integer;
    for my $i (0..$#$m) {
	my $e=$m-&gt;[$i];
	$e*=$n;
	my $f=$e/$base;
	$e-=$f*$base; # or %
	$m-&gt;[$i]=$e;
	$f[$i+1]=$f if $f;;
    }
    for my $i (0..$#f) {
	$m-&gt;[$i]+=$f[$i] if $f[$i];
	$m-&gt;[$i]-=$base,$m-&gt;[$i+1]++ while $m-&gt;[$i]&gt;=$base;
    }
}

sub plusplus {
    my $m=shift;
    my $i=0;
    $m-&gt;[0]++;
    $m-&gt;[$i]=0,$m-&gt;[++$i]++ while ($m-&gt;[$i]==$base);
}

sub subtract {
    my ($n, $m)=@_;
    no warnings;
    my $w=$#$m&gt;$#$n?$#$m:$#$n;
    for my $i (0..$w+1) {
	$n-&gt;[$i]-=$m-&gt;[$i] if $m-&gt;[$i];
	$n-&gt;[$i]+=$base,$n-&gt;[$i+1]-- while $n-&gt;[$i]&lt;0;
    }
}
	    
sub greaterthan {
    my ($n, $m)=@_;
    no warnings;
    my $w=$#$m&gt;$#$n?$#$m:$#$n;
    for(my $i=$w;$i&gt;=0;$i--) {
	my $a=$m-&gt;[$i]-$n-&gt;[$i];
	return $a&gt;0 if $a;
    }
    return 0;
}
</pre></body></html>