examples: add euler.v

This commit is contained in:
Delyan Angelov 2025-08-23 13:50:45 +03:00
parent 4e4d4706e8
commit 8bb7f3dd75
No known key found for this signature in database
GPG key ID: 66886C0F12D595ED

18
examples/euler.v Normal file
View file

@ -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}')