def gcd (a b : Nat) : Nat :=
if b > 0 then gcd b (a % b) else a
termination_by b
decreasing_by
rename_i h
exact Nat.mod_lt a h
def N := 1000
def A := List.range N
def sum := (A.map fun x ↦ A.map (gcd x ·) |>.sum).sum
def sumParallel := (Task.mapList List.sum <| A.map fun x ↦ (Task.spawn fun _ ↦ A.map (gcd x ·) |>.sum)) |>.get
-- #eval sum
-- #eval sumParallel
def main := do
IO.println "test"
IO.println sum