From 38f4a57e6c8f0288b6f6cb953bbbb902028302f0 Mon Sep 17 00:00:00 2001 From: Kristian Larsson Date: Fri, 16 Jun 2023 18:25:26 +0200 Subject: [PATCH] Add Acton nsieve It's fairly slow and the string formatting is just horrible, but it works! --- bench/algorithm/nsieve/1.act | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 bench/algorithm/nsieve/1.act diff --git a/bench/algorithm/nsieve/1.act b/bench/algorithm/nsieve/1.act new file mode 100644 index 00000000..05b8f7bb --- /dev/null +++ b/bench/algorithm/nsieve/1.act @@ -0,0 +1,23 @@ +#!/usr/bin/env runacton + +def nsieve(n: int): + count = 0 + flags = [True] * n + for i in range(2, n, 1): + if flags[i]: + count += 1 + for j in range(i, n, i): + flags[j] = False + n_s = "" + for j in range(0, (8-(len(str(n)))), 1): + n_s += " " + c_s = "" + for j in range(0, (8-(len(str(count)))), 1): + c_s += " " + print("Primes up to %s%d %s%d" % (n_s, n, c_s, count)) + +actor main(env): + n = 4 if len(env.argv) < 2 else int(env.argv[1]) + for i in range(0, 3, 1): + nsieve(10000 << (n - i)) + await async env.exit(0)