#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
bool inRange(long long x, long long a, long long b) {
return x >= a && x <= b;
}
int main() {
long long a, b, k;
cin >> a >> b >> k;
vector<long long> squares, cubes;
long long sqrt_a = ceil(sqrt(a));
long long sqrt_b = floor(sqrt(b));
for (long long x = sqrt_a; x <= sqrt_b; ++x) {
long long square = x * x;
squares.push_back(square);
}
long long cbrt_a = ceil(cbrt(a));
long long cbrt_b = floor(cbrt(b));
for (long long y = cbrt_a; y <= cbrt_b; ++y) {
long long cube = y * y * y;
cubes.push_back(cube);
}
long long count = 0;
for (long long square : squares) {
auto lower = lower_bound(cubes.begin(), cubes.end(), square - k);
auto upper = upper_bound(cubes.begin(), cubes.end(), square + k);
count += distance(lower, upper);
}
cout << count << endl;
return 0;
}
TLE 了