// số i thoả khi mọi ước nguyên tố p của i <= k
// với mỗi số i thuộc [a, b] thì mình loại bỏ đi hết những ước nguyên tố p <= k
// nếu i là số k-factor thì sau quá trình loại bỏ trên thì i = 1
#include <bits/stdc++.h>
using namespace std;
#define fst first
#define snd second
typedef long long ll;
typedef pair<int, int> ii;
const ll LINF = (ll)1e18;
const int INF = (int)1e9;
const int N = (int)5e6 + 5;
const int SQRT_B = 44722;
const int K = (int)1e5 + 5;
int k, a, b;
int num[N];
// [a, b] -> [0, b - a]
bool isPrime[K];
vector<int> prime;
void sieve() {
for (int i = 2; i <= k; i++) isPrime[i] = true;
for (int i = 2; i * i <= k; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= k; j += i) isPrime[j] = false;
}
}
for (int i = 2; i <= k; i++) {
if (isPrime[i]) prime.push_back(i);
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> k >> a >> b;
sieve();
for (int i = a; i <= b; i++) num[i - a] = i;
for (int i : prime) {
// for qua những thằng bội của i nằm trong đoạn [a, b]
for (int j = (a + i - 1) / i * i; j <= b; j += i) {
while (num[j - a] % i == 0) num[j - a] /= i;
}
}
int cnt = 0;
for (int i = a; i <= b; i++) cnt += (num[i - a] == 1);
cout << cnt << '\n';
}
Ly8gc+G7kSBpIHRob+G6oyBraGkgbeG7jWkgxrDhu5tjIG5ndXnDqm4gdOG7kSBwIGPhu6dhIGkgPD0gayAgCi8vIHbhu5tpIG3hu5dpIHPhu5EgaSB0aHXhu5ljIFthLCBiXSB0aMOsIG3DrG5oIGxv4bqhaSBi4buPIMSRaSBo4bq/dCBuaOG7r25nIMaw4bubYyBuZ3V5w6puIHThu5EgcCA8PSBrCi8vIG7hur91IGkgbMOgIHPhu5Egay1mYWN0b3IgdGjDrCBzYXUgcXXDoSB0csOsbmggbG/huqFpIGLhu48gdHLDqm4gdGjDrCBpID0gMSAgCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsgCgojZGVmaW5lIGZzdCBmaXJzdAojZGVmaW5lIHNuZCBzZWNvbmQgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgCnR5cGVkZWYgcGFpcjxpbnQsIGludD4gaWk7IAoKY29uc3QgbGwgTElORiA9IChsbCkxZTE4OyAKY29uc3QgaW50IElORiA9IChpbnQpMWU5OwoKY29uc3QgaW50IE4gPSAoaW50KTVlNiArIDU7ICAKY29uc3QgaW50IFNRUlRfQiA9IDQ0NzIyOyAKY29uc3QgaW50IEsgPSAoaW50KTFlNSArIDU7IAoKaW50IGssIGEsIGI7IAppbnQgbnVtW05dOyAKLy8gW2EsIGJdIC0+IFswLCBiIC0gYV0KCmJvb2wgaXNQcmltZVtLXTsgCnZlY3RvcjxpbnQ+IHByaW1lOyAKCnZvaWQgc2lldmUoKSB7Cglmb3IgKGludCBpID0gMjsgaSA8PSBrOyBpKyspIGlzUHJpbWVbaV0gPSB0cnVlOyAgCglmb3IgKGludCBpID0gMjsgaSAqIGkgPD0gazsgaSsrKSB7CgkJaWYgKGlzUHJpbWVbaV0pIHsKCQkJZm9yIChpbnQgaiA9IGkgKiBpOyBqIDw9IGs7IGogKz0gaSkgaXNQcmltZVtqXSA9IGZhbHNlOyAKCQl9Cgl9Cglmb3IgKGludCBpID0gMjsgaSA8PSBrOyBpKyspIHsKCQlpZiAoaXNQcmltZVtpXSkgcHJpbWUucHVzaF9iYWNrKGkpOyAKCX0KfQoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgCgljaW4udGllKDApOyAKCWNpbiA+PiBrID4+IGEgPj4gYjsgCgoJc2lldmUoKTsgCgoJZm9yIChpbnQgaSA9IGE7IGkgPD0gYjsgaSsrKSBudW1baSAtIGFdID0gaTsgICAKCglmb3IgKGludCBpIDogcHJpbWUpIHsgCgkJLy8gZm9yIHF1YSBuaOG7r25nIHRo4bqxbmcgYuG7mWkgY+G7p2EgaSBu4bqxbSB0cm9uZyDEkW/huqFuIFthLCBiXQoJCWZvciAoaW50IGogPSAoYSArIGkgLSAxKSAvIGkgKiBpOyBqIDw9IGI7IGogKz0gaSkgewoJCQl3aGlsZSAobnVtW2ogLSBhXSAlIGkgPT0gMCkgbnVtW2ogLSBhXSAvPSBpOyAKCQl9Cgl9CgkKCWludCBjbnQgPSAwOyAgIAoJZm9yIChpbnQgaSA9IGE7IGkgPD0gYjsgaSsrKSBjbnQgKz0gKG51bVtpIC0gYV0gPT0gMSk7IAoKCWNvdXQgPDwgY250IDw8ICdcbic7Cn0K