Problem:
Score : 300 points

Problem Statement

Given is a positive integer N.
How many tuples (A,B,C) of positive integers satisfy A \times B + C = N?

Constraints

2 \leq N \leq 10^6

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N

Output

Print the answer.

Sample Input 1

3

Sample Output 1

3

There are 3 tuples of integers that satisfy A \times B + C = 3: (A, B, C) = (1, 1, 2), (1, 2, 1), (2, 1, 1).

Sample Input 2

100

Sample Output 2

473

Sample Input 3

1000000

Sample Output 3

13969985

Solution in C++ (GCC 9.2.1) (judge verdict: Time Limit Exceeded)

#include<bits/stdc++.h>
#define int long long
#define mod 1000000007
using namespace std;

int power(int x,int n){
  if(x==0) return 0;
  if(n==0) return 1;
  if(n==1) return x;
  int res = power(x,n/2);
  res = (res*res)%mod;
  if(n%2) return (res*x)%mod;
  return res;
}

int nCr(int n, int r)
{ 
    if (r == 0) 
        return 1; 
    vector <int> f(n + 1); 
    f[0] = 1; 
    for (int i = 1; i <= n; i++) 
        f[i] = (f[i-1]*i)%mod; 
  
    return ((f[n]*power(f[r],mod-2))%mod * power(f[n-r],mod-2))%mod; 
} 
  

int32_t main(){
     int n; cin>>n;
     int ans = 0;
     for(int c=1 ; c<n ; c++){
        int ab = n-c;
        for(int i=1 ; i*i<=ab ; i++){
           if(ab%i==0){
              if(ab/i==i)
               ans++;
              else ans+=2; 
           }
        }
     }
        cout<<ans;
}