From 8bb7f3dd757f76fad5936fa3348e76215a738358 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Sat, 23 Aug 2025 13:50:45 +0300 Subject: [PATCH] examples: add euler.v --- examples/euler.v | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 examples/euler.v diff --git a/examples/euler.v b/examples/euler.v new file mode 100644 index 0000000000..4b850dfc38 --- /dev/null +++ b/examples/euler.v @@ -0,0 +1,18 @@ +// This example shows 2 solutions for https://projecteuler.net/problem=1 : +fn gauss_sum(n int) fn (int) int { + return fn [n] (m int) int { + return m * ((n - 1) / m) * ((n - 1) / m + 1) / 2 + } +} + +gs := gauss_sum(1000) +println('O(1) arithmetic progression sum: ${gs(3) + gs(5) - gs(15)}') + +// A brute force solution, by checking every n in the range: +mut sum := 0 +for n in 1 .. 1000 { + if n % 3 == 0 || n % 5 == 0 { + sum += n + } +} +println('O(n) brute force calculated sum: ${sum}')