## https://yukicoder.me/problems/no/1162 import math def main(): N = int(input()) if N == 1: print(1) return low = 0 high = int(math.sqrt(N)) * 2 while high - low > 1: mid = (high + low) // 2 if mid ** 2 <= N: low = mid else: high = mid if high ** 2 <= N: v = high else: v = low # 本格的な計算 n = v + 1 m = N // n answer = m low = max(1, v - 10 ** 5) high = v a_set = set() for i in reversed(range(low, v + 1)): l = N // i if l > m: a_set.add(l) answer += low - 1 + len(a_set) print(answer) if __name__ == "__main__": main()