01:#include
02:
03:const intDIGITS = 2400; // must: DIGITS % LEN == 0
04:const intBASE = 10000; // BASE == 10 ** LEN
05:const intLEN = 4;
06:const intTIMES = 14;
07:
08:intget_item(intpi[], intn)
09:{
10: intitem = 0;
11: for(intk = n – 1; k >= 0; k–) {
12: item += pi[k] * BASE;
13: pi[k] = item % (k * 2 + 1);
14: item /= (k * 2 + 1);
15: if(k > 0) item *= k;
16: }
17: returnitem;
18:}
19:
20:intmain()
21:{
22: intpi[DIGITS / LEN * TIMES], n = sizeof(pi) / sizeof(pi[0]);
23: for(inti = 0; i < n; i++) pi[i] = BASE / 5; // BASE / 5 == 2.000
24:for(intremainder = 0; n > 0; n -= TIMES) {
25: i