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++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <stdio.h>
#include <math.h>
#include <iostream>

using namespace std;


long long solv(int N, int K) {
	long long count = 0;
	for(int b=K+1; b<= N; b++) { 
		// b = 1
		int d = N/ b;
		int range = (b - K);
		count += d * range;

		int last = d * b;
		int last_add = N - last - K + 1;
		if(K == 0)
			last_add--;
//		printf("%d %d %d %d %d %d\n", b, d, range, d*range, last, last_add);


		if (0 < last_add){
			count += last_add;

		}

	}

	return count;
}


int main(void) {
//	printf("7 = %d\n", solv(5, 2));
//	printf("100 = %d\n", solv(10, 0));
//	printf("287927211 = %d\n", solv(31415,9265));
//	return 0;

    int X;
    std::cin >> X;
    int Y;
    std::cin >> Y;

	cout << solv(X, Y) << endl;
	
    return 0;
}