24 lines
422 B
Plaintext
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)
|