about summary refs log tree commit diff stats
path: root/tests32/test08.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests32/test08.c')
-rwxr-xr-xtests32/test08.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests32/test08.c b/tests32/test08.c
new file mode 100755
index 00000000..f5f5bce5
--- /dev/null
+++ b/tests32/test08.c
@@ -0,0 +1,36 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+//from https://crypto.stanford.edu/pbc/notes/pi/code.html
+// 800 first decimals of PI
+
+int main() {
+    int r[2800 + 1];
+    int i, k;
+    int b, d;
+    int c = 0;
+
+    for (i = 0; i < 2800; i++) {
+        r[i] = 2000;
+    }
+
+    for (k = 2800; k > 0; k -= 14) {
+        d = 0;
+
+        i = k;
+        for (;;) {
+            d += r[i] * 10000;
+            b = 2 * i - 1;
+
+            r[i] = d % b;
+            d /= b;
+            i--;
+            if (i == 0) break;
+            d *= i;
+        }
+        printf("%.4d", c + d / 10000);
+        c = d % 10000;
+    }
+
+    return 0;
+}
\ No newline at end of file