main = getLine >>= print . compute . read

{-
1からnのそれぞれのkについて、arrのkの倍数全てに+1する
それに対して、sum $ map k * arr k する
ということは、
arrのkの倍数全てに +k して、sum $ elems arr する、でもいい。
+kとsumの順序を逆にすると、
1からnのそれぞれのkについて、[k,k+k..n] の和を求める、の和を求める、
というダケ！で、このリストは k * [1..div n k] だからループする必要もなかった
-}

compute :: Int -> Int
compute n = sum [ k * f (div n k) | k <- [1..n] ]
f m = m * succ m `div` 2
