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 C# (.NET Core 3.1.201) (judge verdict: Accepted)

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using System.IO.Pipes;

public class HelloWorld
{
    static bool res = false;
    static public void Main()
    {
        //var NL = Console.ReadLine().Split(' ').Select(x => long.Parse(x)).ToArray();
        var N = long.Parse(Console.ReadLine());
        long ans = 0;
        for (int C = 1; C < N; C++)
        {
            var aim = N - C;

            //foreach (var item in dic)
            //{
            //    sum *= (item.Value + 1);
            //}
            ans += PrimeFactorization(aim);
        }
        //for (int C = 1; C < N; C++)
        //{
        //    var aim = N - C;
        //    for (int A = 1; A <= aim; A++)
        //    {
        //        if (aim % A == 0) ans++;
        //    }
        //}

        Console.WriteLine(ans);
    }

    public static long PrimeFactorization(long n)
    {
        var sum = 1L;
        for (long i = 2; i * i <= n; i++)
        {
            if (n % i != 0) continue;
            long exponents = 0;

            // 割り続ける
            while (n % i == 0)
            {
                exponents++;
                n /= i;
            }

            sum *= (exponents + 1);
        }

        // 素数が残っている場合
        if (n > 1) sum *= 2;
        return sum;
    }
}