/// Author : Nguyễn Thái Sơn - K18 - KHMT - UIT
/// Training ICPC 2024
#include<bits/stdc++.h>
/// #pragma GCC optimize("O3,unroll-loops")
/// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#define fi first
#define se second
#define TASK "BAI4"
#define pb push_back
#define EL cout << endl
#define Ti20_ntson int main()
#define in(x) cout << x << endl
#define all(x) (x).begin(),(x).end()
#define getbit(x, i) (((x) >> (i)) & 1)
#define cntbit(x) __builtin_popcount(x)
#define FOR(i,l,r) for (int i = l; i <= r; i++)
#define FORD(i,l,r) for (int i = l; i >= r; i--)
#define Debug(a,n) for (int i = 1; i <= n; i++) cout << a[i] << " "; cout << endl
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> vii;
typedef unsigned long long ull;
typedef vector<vector<int>> vvi;
int fastMax(int x, int y) { return (((y-x)>>(32-1))&(x^y))^y; }
const int N = 105;
const int oo = INT_MAX;
const int mod = 1e9 + 7;
const int d4x[4] = {-1, 0, 1, 0} , d4y[4] = {0, 1, 0, -1};
const int d8x[8] = {-1, -1, 0, 1, 1, 1, 0, -1}, d8y[8] = {0, 1, 1, 1, 0, -1, -1, -1};
ll l, r;
int pre[N];
bool Check(int val) {
if (val < 2) return 0;
for (int i = 2; i * i <= val; i++)
if (val % i == 0) return false;
return true;
}
inline void Read_Input() {
FOR(i, 3, 100) {
pre[i] = Check(i);
pre[i] += pre[i - 1];
}
cin >> l >> r;
}
inline void Solve() {
ll Ans = 0;
for (ll i = 2; i * i <= r; i++) {
if (Check(i) == 0) continue;
int cntL = 1, cntR = 1;
ll L = i, R = i;
while (L < l) L = L * i, cntL++;
while (R <= r) R = R * i, cntR++;
Ans += pre[cntR] - pre[cntL];
}
cout << Ans;
}
Ti20_ntson {
freopen(TASK".INP","r",stdin);
freopen(TASK".OUT","w",stdout);
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int T = 1;
while (T -- ) {
Read_Input();
Solve();
}
}
Ly8vIEF1dGhvciA6IE5ndXnhu4VuIFRow6FpIFPGoW4gLSBLMTggLSBLSE1UIC0gVUlUCi8vLyBUcmFpbmluZyBJQ1BDIDIwMjQKCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CgovLy8gI3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk8zLHVucm9sbC1sb29wcyIpCi8vLyAjcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIsYm1pLGJtaTIsbHpjbnQscG9wY250IikKCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBUQVNLICJCQUk0IgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIEVMIGNvdXQgPDwgZW5kbAojZGVmaW5lIFRpMjBfbnRzb24gaW50IG1haW4oKQojZGVmaW5lIGluKHgpIGNvdXQgPDwgeCA8PCBlbmRsCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCh4KS5lbmQoKQojZGVmaW5lIGdldGJpdCh4LCBpKSAoKCh4KSA+PiAoaSkpICYgMSkKI2RlZmluZSBjbnRiaXQoeCkgX19idWlsdGluX3BvcGNvdW50KHgpCiNkZWZpbmUgRk9SKGksbCxyKSBmb3IgKGludCBpID0gbDsgaSA8PSByOyBpKyspCiNkZWZpbmUgRk9SRChpLGwscikgZm9yIChpbnQgaSA9IGw7IGkgPj0gcjsgaS0tKQojZGVmaW5lIERlYnVnKGEsbikgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjb3V0IDw8IGFbaV0gPDwgIiAiOyBjb3V0IDw8IGVuZGwKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHZpaTsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gdnZpOwppbnQgZmFzdE1heChpbnQgeCwgaW50IHkpIHsgcmV0dXJuICgoKHkteCk+PigzMi0xKSkmKHheeSkpXnk7IH0KCmNvbnN0IGludCBOID0gMTA1Owpjb25zdCBpbnQgb28gPSBJTlRfTUFYOwpjb25zdCBpbnQgbW9kID0gMWU5ICsgNzsKY29uc3QgaW50IGQ0eFs0XSA9IHstMSwgMCwgMSwgMH0gLCBkNHlbNF0gPSB7MCwgMSwgMCwgLTF9Owpjb25zdCBpbnQgZDh4WzhdID0gey0xLCAtMSwgMCwgMSwgMSwgMSwgMCwgLTF9LCBkOHlbOF0gPSB7MCwgMSwgMSwgMSwgMCwgLTEsIC0xLCAtMX07CgpsbCBsLCByOwppbnQgcHJlW05dOwoKYm9vbCBDaGVjayhpbnQgdmFsKSB7CiAgICBpZiAodmFsIDwgMikgcmV0dXJuIDA7CiAgICBmb3IgKGludCBpID0gMjsgaSAqIGkgPD0gdmFsOyBpKyspCiAgICAgICAgaWYgKHZhbCAlIGkgPT0gMCkgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJuIHRydWU7Cn0KCmlubGluZSB2b2lkIFJlYWRfSW5wdXQoKSB7CiAgICBGT1IoaSwgMywgMTAwKSB7CiAgICAgICAgcHJlW2ldID0gQ2hlY2soaSk7CiAgICAgICAgcHJlW2ldICs9IHByZVtpIC0gMV07CiAgICB9CiAgICBjaW4gPj4gbCA+PiByOwp9CgppbmxpbmUgdm9pZCBTb2x2ZSgpIHsKICAgIGxsIEFucyA9IDA7CiAgICBmb3IgKGxsIGkgPSAyOyBpICogaSA8PSByOyBpKyspIHsKICAgICAgICBpZiAoQ2hlY2soaSkgPT0gMCkgY29udGludWU7CiAgICAgICAgaW50IGNudEwgPSAxLCBjbnRSID0gMTsKICAgICAgICBsbCBMID0gaSwgUiA9IGk7CiAgICAgICAgd2hpbGUgKEwgPCBsKSBMID0gTCAqIGksIGNudEwrKzsKICAgICAgICB3aGlsZSAoUiA8PSByKSBSID0gUiAqIGksIGNudFIrKzsKICAgICAgICBBbnMgKz0gcHJlW2NudFJdIC0gcHJlW2NudExdOwogICAgfQogICAgY291dCA8PCBBbnM7Cn0KClRpMjBfbnRzb24gewogICAgZnJlb3BlbihUQVNLIi5JTlAiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKFRBU0siLk9VVCIsInciLHN0ZG91dCk7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpbnQgVCA9IDE7CiAgICB3aGlsZSAoVCAtLSApIHsKICAgICAgICBSZWFkX0lucHV0KCk7CiAgICAgICAgU29sdmUoKTsKICAgIH0KfQoKCg==