#include <iostream>
using namespace std;
long long countGifts(long long l, long long r, long long p) {
auto countGiftsInRange = [&](long long start, long long end, long long power, long long gifts) {
long long count = 0;
for (long long i = start; i <= end; i++) {
if ((power % i == 0) && (power * p % i != 0)) {
count += gifts;
}
}
return count;
};
long long totalGifts = 0;
totalGifts += countGiftsInRange(l, r, p, 1);
totalGifts += countGiftsInRange(l, r, p * p, 2);
totalGifts += countGiftsInRange(l, r, p * p * p, 3);
return totalGifts;
}
int main() {
long long l, r, p;
cout << "Enter three positive integers l, r, p (l, r, p <= 10^18): ";
cin >> l >> r >> p;
long long totalGifts = countGifts(l, r, p);
cout << "Total number of gifts received from " << l << " to " << r << ": " << totalGifts << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbG9uZyBsb25nIGNvdW50R2lmdHMobG9uZyBsb25nIGwsIGxvbmcgbG9uZyByLCBsb25nIGxvbmcgcCkgewogICAgYXV0byBjb3VudEdpZnRzSW5SYW5nZSA9IFsmXShsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQsIGxvbmcgbG9uZyBwb3dlciwgbG9uZyBsb25nIGdpZnRzKSB7CiAgICAgICAgbG9uZyBsb25nIGNvdW50ID0gMDsKICAgICAgICBmb3IgKGxvbmcgbG9uZyBpID0gc3RhcnQ7IGkgPD0gZW5kOyBpKyspIHsKICAgICAgICAgICAgaWYgKChwb3dlciAlIGkgPT0gMCkgJiYgKHBvd2VyICogcCAlIGkgIT0gMCkpIHsKICAgICAgICAgICAgICAgIGNvdW50ICs9IGdpZnRzOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb3VudDsKICAgIH07CgogICAgbG9uZyBsb25nIHRvdGFsR2lmdHMgPSAwOwogICAgdG90YWxHaWZ0cyArPSBjb3VudEdpZnRzSW5SYW5nZShsLCByLCBwLCAxKTsKICAgIHRvdGFsR2lmdHMgKz0gY291bnRHaWZ0c0luUmFuZ2UobCwgciwgcCAqIHAsIDIpOwogICAgdG90YWxHaWZ0cyArPSBjb3VudEdpZnRzSW5SYW5nZShsLCByLCBwICogcCAqIHAsIDMpOwogICAgCiAgICByZXR1cm4gdG90YWxHaWZ0czsKfQoKaW50IG1haW4oKSB7CiAgICBsb25nIGxvbmcgbCwgciwgcDsKICAgIGNvdXQgPDwgIkVudGVyIHRocmVlIHBvc2l0aXZlIGludGVnZXJzIGwsIHIsIHAgKGwsIHIsIHAgPD0gMTBeMTgpOiAiOwogICAgY2luID4+IGwgPj4gciA+PiBwOwoKICAgIGxvbmcgbG9uZyB0b3RhbEdpZnRzID0gY291bnRHaWZ0cyhsLCByLCBwKTsKCiAgICBjb3V0IDw8ICJUb3RhbCBudW1iZXIgb2YgZ2lmdHMgcmVjZWl2ZWQgZnJvbSAiIDw8IGwgPDwgIiB0byAiIDw8IHIgPDwgIjogIiA8PCB0b3RhbEdpZnRzIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=