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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
        String[] str = br.readLine().split("\\s+");

        long n = Long.parseLong(str[0]);
        long k = Long.parseLong(str[1]);

        long total = n * k; // 原表达式的第一部分
        long m = Math.min(n, k); // 只需要计算到min(n,k)
        long i = 1;

        while (i <= m) {
            long v = k / i;
            long j = Math.min(k / v, m); // 当前块的右边界
            // 计算i到j的和:(i+j)*(j-i+1)/2,再乘以v
            total -= v * (i + j) * (j - i + 1) / 2;
            i = j + 1; // 跳到下一个块
        }
        out.println(total);
        out.flush();
        out.close();
        br.close();

    }
}