#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e4 + 5;
const int maxh = 30;
const int INF = 1e7 + 5;
int po[maxn][maxh];
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int main() {
  for (int i = 1; i < maxn; ++i) {
    po[i][0] = 1;
    for (int j = 1; j < maxh; ++j)
      po[i][j] = po[i][j - 1] <= INF / i ? po[i][j - 1] * i : INF;
  }
  int n, l, r;
  cin >> n >> l >> r;
  if (n == 1)
    cout << r - l + 1 << endl;
  else if (n == 2)
    cout << (r - l + 1LL) * (r - l) << endl;
  else if (n < maxh) {
    long long ans = 0;
    for (int i = 1; po[i][n - 1] <= r; ++i) {
      long long q = po[i][n - 1];
      for (int j = 1; j < i; ++j) {
        if (gcd(i, j) != 1) continue;
        long long p = po[j][n - 1];
        ans += max(0LL, r / q - (l - 1) / p);
      }
    }
    cout << 2 * ans << endl;
  } else
    cout << 0 << endl;
  return 0;
}
