let () = let rec divisor n m lst = if n < m * m then lst else if n mod m = 0 then if m = n / m then divisor n (m+1) (m :: lst) else divisor n (m+1) (m :: (n / m) :: lst) else divisor n (m+1) lst in Scanf.scanf "%d\n" @@ fun n -> let ans = List.fold_left (+) 0 (divisor n 1 []) in Printf.printf "%d\n" ans