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();
}
}