import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        //		new Main().solveA();
        //		new Main().solveB();
        //		new Main().solveC();
//		new Main().solveC2();
        new Main().solveD();
    }

    private void solveA() {
        Scanner scanner = null;

        String[] wkArray = new String[3];

        try {
            StringBuffer buff = new StringBuffer();
            scanner = new Scanner(System.in);
            for (int i = 0; i < 3; i++) {
                wkArray[i] = scanner.next();
            }

            for (int i = 0; i < 3; i++) {
                for (int j = 0; j < 3; j++) {
                    if (i == j) {
                        buff.append((wkArray[i].toCharArray())[j]);
                    }
                }
            }

            System.out.println(buff.toString());

        } finally {
            if (scanner != null) {
                scanner.close();
            }
        }
    }

    private void solveB() {
        Scanner scanner = null;

        int startNum = 0;
        int endNum = 0;

        try {
            scanner = new Scanner(System.in);
            startNum = scanner.nextInt();
            endNum = scanner.nextInt();

            int count = 0;
            for (int i = startNum; i <= endNum; i++) {
                char[] num = Integer.toString(i).toCharArray();
                if (num[0] == num[4] && num[1] == num[3]) {
                    count++;
                }
            }

            System.out.println(count);

        } finally {
            if (scanner != null) {
                scanner.close();
            }
        }
    }

    private void returnCard(int cardNumN, int cardNumM) {

        revertCard(cardNumN, cardNumM);

        if (cardNumN - 1 >= 0) {
            revertCard(cardNumN - 1, cardNumM);
        }
        if (cardNumN - 1 >= 0 && cardNumM + 1 < numM) {
            revertCard(cardNumN - 1, cardNumM + 1);
        }
        if (cardNumM + 1 < numM) {
            revertCard(cardNumN, cardNumM + 1);
        }
        if (cardNumN + 1 < numN && cardNumM + 1 < numM) {
            revertCard(cardNumN + 1, cardNumM + 1);
        }
        if (cardNumN + 1 < numN) {
            revertCard(cardNumN + 1, cardNumM);
        }
        if (cardNumN + 1 < numN && cardNumM - 1 >= 0) {
            revertCard(cardNumN + 1, cardNumM - 1);
        }
        if (cardNumM - 1 >= 0) {
            revertCard(cardNumN, cardNumM - 1);
        }
        if (cardNumN - 1 >= 0 && cardNumM - 1 >= 0) {
            revertCard(cardNumN - 1, cardNumM - 1);
        }

    }

    private void revertCard(int cardNumN, int cardNumM) {

        long wk = masu.get(cardNumN).get(cardNumM) * -1;
        masu.get(cardNumN).set(cardNumM, wk);
    }

    private List<List<Long>> masu;
    private int numN = 0;
    private int numM = 0;

    private void solveC() {
        Scanner scanner = null;

        try {
            scanner = new Scanner(System.in);
            numN = scanner.nextInt();
            numM = scanner.nextInt();
            masu = new ArrayList<List<Long>>();

            for (int i = 0; i < numN; i++) {
                List<Long> wkList = new ArrayList<Long>();
                for (int j = 0; j < numM; j++) {
                    wkList.add((long) -1);
                }
                masu.add(wkList);
            }

            for (int i = 0; i < numN; i++) {
                for (int j = 0; j < numM; j++) {
                    returnCard(i, j);
                }
            }
            int result = 0;
            for (int i = 0; i < numN; i++) {
                for (int j = 0; j < numM; j++) {
                    if (masu.get(i).get(j) == 1) {
                        result++;
                    }
                }
            }

            System.out.println(result);

        } finally {
            if (scanner != null) {
                scanner.close();
            }
        }
    }

    private void solveC2() {
        Scanner scanner = null;
        long numN = 0;
        long numM = 0;

        try {
            scanner = new Scanner(System.in);
            numN = scanner.nextLong();
            numM = scanner.nextLong();

            if (numN == 1 && numM == 1) {
                System.out.println(1);
            } else if (numN == 1 && numM > 1) {
                int wkEdge = 2;
                long wkNaka = numM - wkEdge;
                System.out.println(wkNaka);
            } else if (numN > 1 && numM == 1) {
                int wkEdge = 2;
                long wkNaka = numN - wkEdge;
                System.out.println(wkNaka);
            } else {
                long wkNaka = (numN - 2) * (numM - 2);
                System.out.println(wkNaka);
            }

        } finally {
            if (scanner != null) {
                scanner.close();
            }
        }
    }

    private void solveD() {
        Scanner scanner = null;
        int n = 0;
        int k = 0;

        try {
            scanner = new Scanner(System.in);
            n = scanner.nextInt();
            k = scanner.nextInt();
            long res = 0;
            long total = n;
            for (long i = k + 1; i <= n; i++) {
                long repeat = (total / i);
                long base = repeat * (i - k);
                long mod = 0;
                if (k != 0) {
                    mod = (total % i >= k ? total % i - (k - 1) : 0);
                } else {
                    mod = total % i;
                }
                res += (base + mod);
            }

            System.out.println(res);

        } finally {
            if (scanner != null) {
                scanner.close();
            }
        }
    }
}

Measured memory_bytes: 21844