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 JavaScript (Node.js 12.16.1) (judge verdict: Time Limit Exceeded)


function main(input) {
    var N= Number(input.trim());
    var count = 0 
    for (var C = 1; C <N ; C++){
        var X = N-C;
        count = count + Count(X)
    }
    console.log(count);
}


function Count(X){
    var result = 1;
    var array = pf(X);
    for ( var k in array){
        if (k !== "1") result = result * (array[k]+1)
    }
    return result;
}

function pf(n) {
    var result = {};
    
    if (n === 1) {
        return {"1":1}
    }

    var init = 2;

    while (n !== 1) {
        var i = init;
        while (i < Number.MAX_SAFE_INTEGER) {
            if (n % i === 0) {
                n /= i;
                if (!(result[i] > 0)) {
                    result[i] = 0;
                }
                result[i]++;
                break;
            }
            i++;
        }
        init = i;
    }
    return result;
}


main(require('fs').readFileSync('/dev/stdin', 'utf8'));