aboutsummaryrefslogtreecommitdiffstats
path: root/test/c/nsieve.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/c/nsieve.c')
-rw-r--r--test/c/nsieve.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/test/c/nsieve.c b/test/c/nsieve.c
index d0d59b2b..79e95024 100644
--- a/test/c/nsieve.c
+++ b/test/c/nsieve.c
@@ -10,7 +10,7 @@
typedef unsigned char boolean;
-static void nsieve(int m) {
+static unsigned int nsieve(int m) {
unsigned int count = 0, i, j;
boolean * flags = (boolean *) malloc(m * sizeof(boolean));
memset(flags, 1, m);
@@ -23,14 +23,20 @@ static void nsieve(int m) {
}
free(flags);
- printf("Primes up to %8u %8u\n", m, count);
+ return count;
}
+#define NITER 10
+
int main(int argc, char * argv[]) {
int m = argc < 2 ? 9 : atoi(argv[1]);
- int i;
- for (i = 0; i < 3; i++)
- nsieve(10000 << (m-i));
+ int i, j;
+ for (i = 0; i < 3; i++) {
+ int n = 10000 << (m-i);
+ unsigned count;
+ for (j = 0; j < NITER; j++) { count = nsieve(n); }
+ printf("Primes up to %8d %8u\n", n, count);
+ }
return 0;
}