Problem:
Score : 400 points

Problem Statement

Takahashi had a pair of two positive integers not exceeding N, (a,b), which he has forgotten.
He remembers that the remainder of a divided by b was greater than or equal to K.
Find the number of possible pairs that he may have had.

Constraints

1 \leq N \leq 10^5

0 \leq K \leq N-1

All input values are integers.

Input

Input is given from Standard Input in the following format:

N K

Output

Print the number of possible pairs that he may have had.

Sample Input 1

5 2

Sample Output 1

7

There are seven possible pairs: (2,3),(5,3),(2,4),(3,4),(2,5),(3,5) and (4,5).

Sample Input 2

10 0

Sample Output 2

100

Sample Input 3

31415 9265

Sample Output 3

287927211

Solution in C++ (GCC 9.2.1) (judge verdict: Accepted)

#include <bits/stdc++.h>
typedef long long lint;
using namespace std;
#define rep(i,n) for(int i=0, i##_len=(n); i<i##_len; ++i)

// .##.##.##.#
void solve(lint n,lint k) {
    /*
    lint ansa = 0;
    for (int a=1; a<=n; a++) {
        for (int b=1; b<=n; b++) {
            if (a%b >= k) ansa ++;
        }
    }
    */
    //cout << ansa << endl;

    lint ans = 0;
    if (k == 0) {
        ans = n*n;
    }
    else {
        for (lint b=1; b <= n; b++) {
            if (b <= k) continue;
            lint t = b-k;
            ans += n/b * t;
            lint c = n%b + 1;
            ans += max(c-k,(lint)0);
            
        }
    }
    cout << ans << endl;
    //if (ans != ansa) {
    //    cout << n << ' ' << k << endl;
    //}

}

int main() {
    lint n,k; cin >> n >> k;
    solve(n,k);
}