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 Java8 (OpenJDK 1.8.0) (judge verdict: Time Limit Exceeded)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String[] tmpArray = br.readLine().split(" ");
		
		int n = Integer.parseInt(tmpArray[0]);
		int k = Integer.parseInt(tmpArray[1]);
		
		long result = 0;
		
		if(k == 0){
			result = (long)n*n;
			System.out.println(result);
			return;
		}
		for(int b = k + 1; b <= n ; b++){
//			System.out.println(" b = "+b);
			//余り
			for(int baseA = k; baseA < b; baseA++){
//				if(baseA % b < k){
//					break;
//				}
				
//				result += (n - baseA)/b;
//				/*
				for(int a = baseA; a <= n; a += b){
//					System.out.println("a "+a+" b "+b);
					result++;

				}
			}
		}
//		for(int i = Math.max(1, k); i <= n; i++){
//			for(int j = 1; j <= n; j++){
//				if(i%j >= k){
//					if(i < j){
//						result += n - i;
//						break;
//					}
//					else {
//						result ++;
//					}
//				}
//			}
//		}
		
		System.out.println(result);
	}

}