From 7803f6710b0dc6693bd999fb86079c1d764820b8 Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Fri, 17 Apr 2020 01:13:41 +0200 Subject: [PATCH] Added primes test C-file. --- src/test/kc/primes-1000.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/test/kc/primes-1000.c diff --git a/src/test/kc/primes-1000.c b/src/test/kc/primes-1000.c new file mode 100644 index 000000000..d8c08fc71 --- /dev/null +++ b/src/test/kc/primes-1000.c @@ -0,0 +1,33 @@ +// Calculates the 1000 first primes +// From A Comparison of Language Speed, The Transactor, March 1987, Volume 7, Issue 5 +// http://csbruce.com/cbm/transactor/pdfs/trans_v7_i05.pdf + +#include +#include +#include + +#define totalprimes 1000 + +int testnum, primeptr, lasttest, lastprime; +int primenum[totalprimes]; + +void main() { + primenum[1] = 2; primenum[2] = 3; + testnum = 3; lasttest = 2; lastprime = 2; + do { + int p = primenum[lasttest]; + if(testnum > (int)mul16s(p, p)) { + lasttest++; + } + testnum +=2; primeptr = 2; + do { + div16s(testnum, primenum[primeptr++]); + if(rem16s == 0) { + testnum +=2; primeptr = 2; + } + } while (primeptr<=lasttest); + primenum[++lastprime] = testnum; + print_sint_decimal(testnum); + print_char(' '); + } while(lastprime