#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline T Abs(const T& value) {
  return value < 0 ? -value : value;
}
inline double Sqr(const double& value) { return value * value; }
template <typename T>
inline T Vm(const T& gjigu, const T& djigd, const T& x2, const T& y2) {
  return gjigu * y2 - x2 * djigd;
}
template <typename T>
inline T Sm(const T& gjigu, const T& djigd, const T& x2, const T& y2) {
  return gjigu * x2 + y2 * djigd;
}
const int maxn = 10 * 1000 * 1000 + 10;
int a[maxn];
int main() {
  double t = clock();
  for (int k = 1; k * k < maxn; ++k) {
    for (int j = k * k; j < maxn; j += k * k) a[j] = k * k;
  }
  int first, n;
  cin >> first >> n;
  long long ans = 0;
  for (int i = 0; i < n; ++i) ans += (first + i) / a[first + i];
  cout << ans << endl;
  return 0;
}
