For a positive integer X, let f(X) be the number of positive divisors of X.
Given a positive integer N, find \sum_{K=1}^N K\times f(K).

-----Constraints-----
 - 1 \leq N \leq 10^7

-----Input-----
Input is given from Standard Input in the following format:
N

-----Output-----
Print the value \sum_{K=1}^N K\times f(K).

-----Sample Input-----
4

-----Sample Output-----
23

We have f(1)=1, f(2)=2, f(3)=2, and f(4)=3, so the answer is 1\times 1 + 2\times 2 + 3\times 2 + 4\times 3 =23.

Difficulty: MEDIUM_HARD

Solutions:
n = int(input())
print(sum((n // i * (i + n // i * i) // 2 for i in range(1, n + 1))))


N = int(input())
out = 0
for X in range(1, N + 1):
	Y = N // X
	out += Y * (Y + 1) * X / 2
print(int(out))


N = int(input())
print(sum([N // i * (N // i + 1) * i // 2 for i in range(1, N + 1)]))


n = int(input())
print(sum(((n - n % k) * (n // k + 1) // 2 for k in range(1, n + 1))))


N = int(input())
if N == 1:
	print(1)
	return

def divisor(n):
	m = N // n
	return n * m * (m + 1) // 2
M = N // 2
ans = 0
for i in range(2, M + 1):
	ans += divisor(i)
ans += N * (N + 1) - M * (M + 1) // 2
print(ans)


N = int(input())
print(sum([n * (N // n) * (N // n + 1) // 2 for n in range(1, N + 1)]))


def solve(string):
	n = int(string)
	return str(sum((i * (n // i) * (n // i + 1) // 2 for i in range(1, n + 1))))

def __starting_point():
	import sys
	print(solve(sys.stdin.read().strip()))
__starting_point()


n = int(input())
print(sum(map(lambda x: n // x * (n // x + 1) // 2 * x, range(1, n + 1))))


import sys
read = sys.stdin.read
readlines = sys.stdin.readlines

def main():
	n = int(input())
	if n == 1:
		print(1)
		return
	r = 0
	for i1 in range(1, n + 1):
		y = n // i1
		r += y * (y + 1) // 2 * i1
	print(r)

def __starting_point():
	main()
__starting_point()


N = int(input())
ans = int(sum([j * (N // j) * (N // j + 1) / 2 for j in range(1, N + 1)]))
print(ans)


def main(N):
	x = 0
	for a in range(1, N + 1):
		b = N // a
		x += a * b * (b + 1) // 2
	return x
N = int(input())
print(main(N))


def solve(n):
	su = 0
	for i in range(1, n + 1):
		m = n // i
		su += m * (2 * i + (m - 1) * i) // 2
	return su
n = int(input())
print(solve(n))


def main():
	import sys
	pin = sys.stdin.readline
	pout = sys.stdout.write
	perr = sys.stderr.write
	N = int(pin())
	ans = 0
	for i in range(1, N + 1):
		ans += N // i * (N // i + 1) * i // 2
	print(ans)
	return
main()


def main():
	N = int(input())
	ans = 0
	for i in range(1, N + 1):
		m = N // i
		ans += i * m * (m + 1) // 2
	print(ans)

def __starting_point():
	main()
__starting_point()


def main():
	n = int(input())
	ans = 0
	for k in range(1, n + 1):
		ans += k * (n // k) * (n // k + 1) // 2
	print(ans)

def __starting_point():
	main()
__starting_point()


def main():
	n = int(input())
	ans = 0
	for i in range(1, n + 1):
		tmp = n // i
		ans += i * tmp * (tmp + 1) // 2
	print(ans)
	return

def __starting_point():
	main()
__starting_point()


import sys
N = int(sys.stdin.readline())
ans = sum((N // x * (N // x + 1) * x // 2 for x in range(1, N + 1)))
print(ans)


def main():
	N = int(input())
	ans = 0
	for x in range(1, int(N ** 0.5) + 1):
		e = N // x
		ans += x * (e * e + e - x * x)
	print(ans)

def __starting_point():
	main()
__starting_point()


def solve():
	N = int(input())
	ans = 0
	for k in range(1, N + 1):
		x = N // k
		ans += x * (k + x * k) // 2
	print(ans)

def __starting_point():
	solve()
__starting_point()


def solve(N):
	answer = 0
	for i in range(1, N + 1):
		mprime = N // i
		answer += i * (mprime * (mprime + 1)) // 2
	return answer

def main():
	N = int(input())
	answer = solve(N)
	print(answer)

def __starting_point():
	main()
__starting_point()


N = int(input())
t = 0
for j in range(1, N + 1):
	m = N // j
	t += (1 + m) * m // 2 * j
print(t)


import sys
read = sys.stdin.read
readline = sys.stdin.readline
readlines = sys.stdin.readlines
import numpy as np

def main():
	n = int(input())
	if n == 1:
		print(1)
		return
	divs = np.arange(1, n + 1)
	divs2 = n // divs
	divs3 = divs2 * (divs2 + 1) // 2
	divs3 = divs3 * divs
	r = divs3.sum()
	print(r)

def __starting_point():
	main()
__starting_point()


import sys

def solve(n):
	su = 0
	for i in range(1, n + 1):
		m = n // i
		su += m * (2 * i + (m - 1) * i) // 2
	return su
if sys.argv[-1] == 'ONLINE_JUDGE':
	from numba.pycc import CC
	cc = CC('my_module')
	cc.export('solve', '(i8)')(solve)
	cc.compile()
	return
n = int(input())
print(solve(n))


n = int(input())
ans = 0
g = lambda x: x * (n // x) * (n // x + 1) // 2
print(sum((g(i) for i in range(1, n + 1))))


n = int(input())
ans = 0
s = 1
for a in range(1, int(n ** 0.5) + 1):
	div = n // a
	ans += ((div + 1) * div // 2 - s) * a * 2 + a * a
	s += a + 1
print(ans)


import sys

def input():
	return sys.stdin.readline().rstrip()

def main():
	n = int(input())
	ans = 0
	for i in range(1, n + 1):
		ans += i * (1 + n // i) * (n // i) // 2
	print(ans)

def __starting_point():
	main()
__starting_point()


n = int(input())
sum = 0
for j in range(1, n + 1):
	sum += n // j * (n // j + 1) // 2 * j
print(sum)


import sys
import math
input = sys.stdin.readline

def main():
	N = int(input())
	ans = 0
	for i in range(1, N + 1):
		num = N // i
		ans += num * (num + 1) // 2 * i
	print(ans)

def __starting_point():
	main()
__starting_point()


n = int(input())
print(sum([n // m * (n // m + 1) * m // 2 for m in range(1, n + 1)]))


def main():
	n = int(input())
	ans = 0
	x = n // 2
	for i in range(1, n + 1):
		m = n // i
		ans += i * ((m + 1) * m) // 2
	print(ans)

def __starting_point():
	main()
__starting_point()


n = int(input())
print(sum((m * ((n // m) ** 2 + n // m - m ** 2) for m in range(1, int(n ** 0.5) + 1))))