diff run/mini/sieve.d @ 1628:c6ef09dfba4d

add mini test set from ldc project
author Moritz Warning <moritzwarning@web.de>
date Mon, 10 Jan 2011 19:47:18 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/mini/sieve.d	Mon Jan 10 19:47:18 2011 +0100
@@ -0,0 +1,33 @@
+/* Eratosthenes Sieve prime number calculation. */
+
+extern(C) int printf(char*, ...);
+
+bool flags[8191];
+
+int main()
+{   int     i, prime, k, count, iter;
+
+    printf("10 iterations\n");
+    for (iter = 1;
+    iter <= 10;
+    iter++)
+    {
+    count = 0;
+    flags[] = true;
+    for (i = 0; i < flags.length; i++)
+    {   if (flags[i])
+        {
+        prime = i + i + 3;
+        k = i + prime;
+        while (k < flags.length)
+        {
+            flags[k] = false;
+            k += prime;
+        }
+        count += 1;
+        }
+    }
+    }
+    printf("%d primes\n", count);
+    return 0;
+}