# 解説



def main():

    N = int(eval(input()))



    ans = 0

    for div in range(1, N + 1):

        m = N // div  # div, div*2, ..., div*m

        ans += (m * (m + 1) // 2) * div

    print(ans)





if __name__ == '__main__':

    main()

def main():

    from math import isqrt

    # Return the integer part of the square root of the input.



    N = int(eval(input()))



    def f(x):

        return x * (x + 1) // 2



    ans = 0

    for k in range(1, isqrt(N) + 1):

        # https://maspypy.com/atcoder-%e5%8f%82%e5%8a%a0%e6%84%9f%e6%83%b3-2020-06-27abc-172

        # a*b<=N

        # k=min(a,b)

        # k*k, k*(k+1),...,k*m

        # k*jはkの倍数かつjの倍数なので,2回計上される

        # k*kはkの倍数として1回だけ計上されるので,2回分計上して過剰分を減らす

        m = N // k

        ans += 2 * k * (f(m) - f(k - 1)) - k * k

    print(ans)





if __name__ == '__main__':

    main()

# 解説
def main():
    N = int(eval(input()))
    ans = 0
    for div in range(1, N + 1):
        m = N // div  # div, div*2, ..., div*m
        ans += (m * (m + 1) // 2) * div
    print(ans)


if __name__ == "__main__":
    main()

def main():
    from math import isqrt

    # Return the integer part of the square root of the input.
    N = int(eval(input()))

    def f(x):
        return x * (x + 1) // 2

    ans = 0
    for k in range(1, isqrt(N) + 1):
        # https://maspypy.com/atcoder-%e5%8f%82%e5%8a%a0%e6%84%9f%e6%83%b3-2020-06-27abc-172
        # a*b<=N
        # k=min(a,b)
        # k*k, k*(k+1),...,k*m
        # k*jはkの倍数かつjの倍数なので,2回計上される
        # k*kはkの倍数として1回だけ計上されるので,2回分計上して過剰分を減らす
        m = N // k
        ans += 2 * k * (f(m) - f(k - 1)) - k * k
    print(ans)


if __name__ == "__main__":
    main()

-# 解説 +    from math import isqrt + +    # Return the integer part of the square root of the input. + +    def f(x): +        return x * (x + 1) // 2 + -    for div in range(1, N + 1): -        m = N // div  # div, div*2, ..., div*m -        ans += (m * (m + 1) // 2) * div +    for k in range(1, isqrt(N) + 1): +        # https://maspypy.com/atcoder-%e5%8f%82%e5%8a%a0%e6%84%9f%e6%83%b3-2020-06-27abc-172 +        # a*b<=N +        # k=min(a,b) +        # k*k, k*(k+1),...,k*m +        # k*jはkの倍数かつjの倍数なので,2回計上される +        # k*kはkの倍数として1回だけ計上されるので,2回分計上して過剰分を減らす +        m = N // k +        ans += 2 * k * (f(m) - f(k - 1)) - k * k