N=int(eval(input()))



# 約数の個数のテーブルを O(N loglog N) で作る

div = [1] * (N+1)

div[0] = 0



for p in range(2, N+1):

  if div[p] != 1:

    continue

  # p は素数

  pp = p  # power of p

  e = 1

  while pp <= N:

    for n in range(pp, N+1, pp):

      div[n] += div[n] // e

    e += 1

    pp *= p  



ans = sum(div[:N])

print(ans)
"""O(N^0.5) solution"""



N = int(eval(input()))

N -= 1



ans = 0

n = int(N**.5)

for x in range(1, n+1):

  # (x,x)

  ans += 1

  # (x,y)

  ans += N//x - x

  # (y,x)

  ans += N//x - x



print(ans)
N = int(eval(input()))
# 約数の個数のテーブルを O(N loglog N) で作る
div = [1] * (N + 1)
div[0] = 0
for p in range(2, N + 1):
    if div[p] != 1:
        continue
    # p は素数
    pp = p  # power of p
    e = 1
    while pp <= N:
        for n in range(pp, N + 1, pp):
            div[n] += div[n] // e
        e += 1
        pp *= p
ans = sum(div[:N])
print(ans)

"""O(N^0.5) solution"""
N = int(eval(input()))
N -= 1
ans = 0
n = int(N**0.5)
for x in range(1, n + 1):
    # (x,x)
    ans += 1
    # (x,y)
    ans += N // x - x
    # (y,x)
    ans += N // x - x
print(ans)

+"""O(N^0.5) solution""" -# 約数の個数のテーブルを O(N loglog N) で作る -div = [1] * (N + 1) -div[0] = 0 -for p in range(2, N + 1): -    if div[p] != 1: -        continue -    # p は素数 -    pp = p  # power of p -    e = 1 -    while pp <= N: -        for n in range(pp, N + 1, pp): -            div[n] += div[n] // e -        e += 1 -        pp *= p -ans = sum(div[:N]) +N -= 1 +ans = 0 +n = int(N**0.5) +for x in range(1, n + 1): +    # (x,x) +    ans += 1 +    # (x,y) +    ans += N // x - x +    # (y,x) +    ans += N // x - x