/* * https://crypto.stanford.edu/pbc/notes/pi/code.html */ #include int main() { long i, k; long b, d, aux; long c = 0; long r[2800 + 1]; unsigned int count = 0; for (i = 0; i < 2800; i++) { r[i] = 2000; } for (k = 2800; k > 0; k -= 14) { d = 0; i = k; for (;;) { aux = r[i] * 10000; d += aux; b = 2 * i - 1; r[i] = d % b; d /= b; i--; if (i == 0) break; d *= i; } printf("%lu", c + d / 10000); c = d % 10000; count += 4; if (count % 80 == 0) printf("\n"); } printf("\n\nTotal numbers computed: %u\n", count); return 0; }