Files
zern/examples/euler/euler_21.zr
2026-07-01 14:43:39 +02:00

24 lines
422 B
Plaintext

include "std/io.zr"
func divisors_sum[n: i64] : i64
k := n
sum := 1
for i in 2..k+1
p := 1
while k % i == 0
p = p * i
k = k / i
sum = sum * (p * i - 1) / (i - 1)
return sum - n
func main[] : i64
sum := 0
for i in 2..10000
d := divisors_sum(i)
if i < d && i == divisors_sum(d)
sum += i + d
io.println_i64(sum)