/*
1<=A<=B<=100000000000000
소수의 N제곱꼴이면 거의 소수
최대 10^14이므로...
1 1000
2 4 8 16 32 64 128 256 512
3 9 27 81 243 729
5 25 125 625
7 49 343
11 121
13 169
17 ..
19 ..
23 ..
29 ..
31 ..
== 25
...
k번 제곱했을 때 범위를 벗어날때까지 반복?
*/
#include <iostream>
#include <set>
using namespace std;
typedef unsigned long long int ULL;
int main() {
bool not_prime[10000001];
for (int i = 2; i < 10000000; i++) {
for (int j = 2 * i; j <= 10000000; j += i) {
not_prime[j] = true;
}
}
long long A, B, i = 2;
cin >> A >> B;
int cnt = 0;
set<ULL> s;
while (1) {
if (i * i > B) {
break;
}
if (!not_prime[i]) {
ULL T = i * i;
// long long 보다 커지게 되는 경우를 방지해야함
while (T <= B && B > 18446744073709551615UL / T) {
if (A <= T && T <= B && s.find(T) == s.end()) {
s.emplace(T);
cnt++;
}
T *= i;
}
}
i++;
}
cout << cnt;
return 0;
}
LyoKMTw9QTw9Qjw9MTAwMDAwMDAwMDAwMDAwCuyGjOyImOydmCBO7KCc6rOx6ry07J2066m0IOqxsOydmCDshozsiJgK7LWc64yAIDEwXjE07J2066+A66GcLi4uCjEgMTAwMAoyIDQgOCAxNiAzMiA2NCAxMjggMjU2IDUxMgozIDkgMjcgODEgMjQzIDcyOQo1IDI1IDEyNSA2MjUKNyA0OSAzNDMKMTEgMTIxCjEzIDE2OQoxNyAuLgoxOSAuLgoyMyAuLgoyOSAuLgozMSAuLgo9PSAyNQouLi4Ka+uyiCDsoJzqs7HtlojsnYQg65WMIOuylOychOulvCDrspfslrTrgqDrlYzquYzsp4Ag67CY67O1PwogKi8KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgVUxMOwoKaW50IG1haW4oKSB7CiAgICBib29sIG5vdF9wcmltZVsxMDAwMDAwMV07CiAgICBmb3IgKGludCBpID0gMjsgaSA8IDEwMDAwMDAwOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMiAqIGk7IGogPD0gMTAwMDAwMDA7IGogKz0gaSkgewogICAgICAgICAgICBub3RfcHJpbWVbal0gPSB0cnVlOwogICAgICAgIH0KICAgIH0KICAgIGxvbmcgbG9uZyBBLCBCLCBpID0gMjsKICAgIGNpbiA+PiBBID4+IEI7CiAgICBpbnQgY250ID0gMDsKICAgIHNldDxVTEw+IHM7CiAgICB3aGlsZSAoMSkgewogICAgICAgIGlmIChpICogaSA+IEIpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmICghbm90X3ByaW1lW2ldKSB7CiAgICAgICAgICAgIFVMTCBUID0gaSAqIGk7CiAgICAgICAgICAgIC8vIGxvbmcgbG9uZyDrs7Tri6Qg7Luk7KeA6rKMIOuQmOuKlCDqsr3smrDrpbwg67Cp7KeA7ZW07JW87ZWoCiAgICAgICAgICAgIHdoaWxlIChUIDw9IEIgJiYgQiA+IDE4NDQ2NzQ0MDczNzA5NTUxNjE1VUwgLyBUKSB7CiAgICAgICAgICAgICAgICBpZiAoQSA8PSBUICYmIFQgPD0gQiAmJiBzLmZpbmQoVCkgPT0gcy5lbmQoKSkgewogICAgICAgICAgICAgICAgICAgIHMuZW1wbGFjZShUKTsKICAgICAgICAgICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIFQgKj0gaTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpKys7CiAgICB9CiAgICBjb3V0IDw8IGNudDsKICAgIHJldHVybiAwOwp9Cg==