Spigot
From Wiki
Algorithm
for(i=0;i<NUM;i++) a[i]=2;
for(loop=0;loop<DIGITS;loop++) {
for(i=0;i<NUM;i++) a[i]*=10;
for(i=NUM-1;i>=1;i--) {
a[i]/(i*2+1) -> quotient,remainder
a[i]=remainder;
a[i-1]+=quotient*i;
}
output(a[0]/10);
a[0]%=10;
}
Runthrough (NUM=10, DIGITS=3)
0 1 2 3 4 5 6 7 8 9 i 1 3 5 7 9 11 13 15 17 19 (i*2+1) --------------------------------------------------------------------------- 2 2 2 2 2 2 2 2 2 2 a 20 20 20 20 20 20 20 20 20 20 a 0 2 2 4 3 10 1 13 12 1 a 3 0 20 20 40 30 100 10 130 120 10 a 3 1 3 3 0 10 3 6 1 10 a 1 30 10 30 30 0 100 30 60 10 100 a 0 0 1 5 1 9 0 9 4 5 a 4
