#include <bits/stdc++.h>
using namespace std;
int i, j, k, n, m, x, y, t, f[20000011], p[20000011], l, r, d, num, dn;
int main() {
  scanf("%d%d%d", &n, &l, &r);
  if (n == 1) {
    printf("%d\n", r - l + 1);
    return 0;
  }
  n--;
  for (i = 1; i < 20000011; i++) {
    t = 1;
    for (int j = 1; j <= n; j++) {
      t = t * i;
      t = min(t, 20000011);
    }
    if (t >= 20000011) break;
    f[t] = 1;
  }
  for (i = 1; i < 20000011; i++) f[i] += f[i - 1];
  for (i = 2; i < 20000011; i++)
    if (!p[i])
      for (j = i; j < 20000011; j += i) p[j] = p[j] ? p[j] : i;
  long long ans = 0;
  for (i = l; i <= r; i++) {
    vector<int> v;
    for (j = i; j > 1; j /= p[j]) v.push_back(p[j]);
    d = 1;
    num = 0;
    for (j = 0; j < v.size(); j++) {
      num++;
      if (j + 1 == v.size() || v[j] != v[j + 1]) {
        for (k = 0; k < num / n; k++) d *= v[j];
        num = 0;
      }
    }
    dn = 1;
    if (d != 1)
      for (j = 1; j <= n; j++) dn *= d;
    m = i / dn;
    int fi = (l - 1 + m) / m, la = 1;
    if (d != 1)
      for (j = 1; j <= n; j++) {
        la *= d;
        if (la >= 20000011) {
          la = 20000011;
          break;
        }
      }
    ans += f[la - 1] - f[fi - 1];
  }
  printf("%lld\n", ans * 2);
  return 0;
}
