summaryrefslogtreecommitdiff
path: root/examples/algorithms/sieve.zc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/algorithms/sieve.zc')
-rw-r--r--examples/algorithms/sieve.zc28
1 files changed, 28 insertions, 0 deletions
diff --git a/examples/algorithms/sieve.zc b/examples/algorithms/sieve.zc
new file mode 100644
index 0000000..25e2c5a
--- /dev/null
+++ b/examples/algorithms/sieve.zc
@@ -0,0 +1,28 @@
+
+import "std.zc"
+
+fn main() {
+ const LIMIT = 50;
+
+ var is_prime: bool[LIMIT];
+ for i in 0..LIMIT { is_prime[i] = true; }
+
+ is_prime[0] = false;
+ is_prime[1] = false;
+
+ for p in 2..LIMIT {
+ if is_prime[p] {
+ for (var i = p * p; i < LIMIT; i += p) {
+ is_prime[i] = false;
+ }
+ }
+ }
+
+ print "Primes up to {LIMIT}: ";
+ for i in 0..LIMIT {
+ if is_prime[i] {
+ print "{i} ";
+ }
+ }
+ println "";
+}