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 Rust (1.15.1) (judge verdict: Wrong Answer)

fn main() {
    // let n = 5;
    // let k = 2;
    // let n = 10;
    // let k = 1;
    // let n = 31415;
    // let k = 9265;
    let vec = read_line();
    let n = vec[0];
    let k = vec[1];

    if k == 0 {
        println!("{}", n * n);
        return;
    }

    let mut cnt = 0;
    for b in 1..(n+1) {
        let p = n / b;
        let r = n % b;
        let sum1 = std::cmp::max(0, b - k) * p;
        let sum2 = std::cmp::max(0, r - k + 1);
        cnt += sum1 + sum2;
    }

    println!("{}", cnt);
}

fn read_line() -> Vec<i32> {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    let v = s.trim()
        .split_whitespace()
        .map(|e| e.parse().ok().unwrap())
        .collect();
    return v
}