output_description: Print the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
attempt: def gcd(a, b):
      while b:
          a, b = b, a % b
      return a
  
  
  def isPrimeMR(n):
      d = n - 1
      d = d // (d & -d)
      L = (
          [2, 7, 61]
          if n < 1 << 32
          else (
              [2, 3, 5, 7, 11, 13, 17]
              if n < 1 << 48
              else [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]
          )
      )
      for a in L:
          t = d
          y = pow(a, t, n)
          if y == 1:
              continue
          while y != n - 1:
              y = y * y % n
              if y == 1 or t == n - 1:
                  return 0
              t <<= 1
      return 1
  
  
  def findFactorRho(n):
      m = 1 << n.bit_length() // 8
      for c in range(1, 99):
          f = lambda x: (x * x + c) % n
          y, r, q, g = 2, 1, 1, 1
          while g == 1:
              x = y
              for i in range(r):
                  y = f(y)
              k = 0
              while k < r and g == 1:
                  ys = y
                  for i in range(min(m, r - k)):
                      y = f(y)
                      q = q * abs(x - y) % n
                  g = gcd(q, n)
                  k += m
              r <<= 1
          if g == n:
              g = 1
              while g == 1:
                  ys = f(ys)
                  g = gcd(abs(x - ys), n)
          if g < n:
              if isPrimeMR(g):
                  return g
              elif isPrimeMR(n // g):
                  return n // g
              return findFactorRho(g)
  
  
  def primeFactor(n):
      i = 2
      ret = {}
      rhoFlg = 0
      while i * i <= n:
          k = 0
          while n % i == 0:
              n //= i
              k += 1
          if k:
              ret[i] = k
          i += i % 2 + (3 if i % 3 == 1 else 1)
          if i == 101 and n >= 2**20:
              while n > 1:
                  if isPrimeMR(n):
                      ret[n], n = 1, 1
                  else:
                      rhoFlg = 1
                      j = findFactorRho(n)
                      k = 0
                      while n % j == 0:
                          n //= j
                          k += 1
                      ret[j] = k
  
      if n > 1:
          ret[n] = 1
      if rhoFlg:
          ret = {x: ret[x] for x in sorted(ret)}
      return ret
  
  
  def sqrt(n):
      x = 1 << (n.bit_length() + 1) // 2
      y = (x + n // x) // 2
      while y < x:
          x = y
          y = (x + n // x) // 2
      return x
  
  
  def calc(k):
      return (sqrt(8 * k + 1) - 1) // 2
  
  
  N = int(input())
  cnt = 0
  for i in range(1, N):
      tmp = 1
      pf = primeFactor(i)
      for v in pf.values():
          tmp *= v + 1
      cnt += tmp
  print(cnt)
  
problem_description: Statement
  
  Given is a positive integer N. How many tuples (A,B,C) of positive integers
  satisfy A \times B + C = N?
samples: [{"input": "3", "output": "3\n    \n\nThere are 3 tuples of integers that satisfy A \\times B + C = 3: (A, B, C) =\n(1, 1, 2), (1, 2, 1), (2, 1, 1).\n\n* * *"}, {"input": "100", "output": "473\n    \n\n* * *"}, {"input": "1000000", "output": "13969985"}]