#include <bits/stdc++.h>
using namespace std;
const int M = 31630;
bool f[M + 1];
int n, m, k;
vector<int> prime;
void siv() {
f[0] = f[1] = 1;
for (int i = 4; i <= M; i += 2)
f[i] = 1;
for (int i = 3; i * i <= M; i += 2)
if (!f[i])
for (int j = i * i; j <= M; j += i)
f[j] = 1;
prime.push_back(2);
for (int i = 3; i <= M; i += 2)
if (!f[i])
prime.push_back(i);
}
int fact(int x, int k) {
int p = 1, sum;
for (int i = 0, ln = prime.size(); i < ln && prime[i] * prime[i] <= x;
++i) {
for (sum = 1; x % prime[i] == 0; ++sum, x /= prime[i])
;
p *= sum;
if (p > k)
return 0;
}
if (x > 1)
p *= 2;
return p == k;
}
int main() {
//freopen("a.in", "r", stdin);
siv();
int ans;
while (scanf("%d%d%d", &n, &m, &k) == 3) {
for (ans = 0; n <= m; ans += fact(n++, k))
;
printf("%d\n", ans);
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTSA9IDMxNjMwOwpib29sIGZbTSArIDFdOwppbnQgbiwgbSwgazsKdmVjdG9yPGludD4gcHJpbWU7CnZvaWQgc2l2KCkgewoJZlswXSA9IGZbMV0gPSAxOwoJZm9yIChpbnQgaSA9IDQ7IGkgPD0gTTsgaSArPSAyKQoJCWZbaV0gPSAxOwoJZm9yIChpbnQgaSA9IDM7IGkgKiBpIDw9IE07IGkgKz0gMikKCQlpZiAoIWZbaV0pCgkJCWZvciAoaW50IGogPSBpICogaTsgaiA8PSBNOyBqICs9IGkpCgkJCQlmW2pdID0gMTsKCXByaW1lLnB1c2hfYmFjaygyKTsKCWZvciAoaW50IGkgPSAzOyBpIDw9IE07IGkgKz0gMikKCQlpZiAoIWZbaV0pCgkJCXByaW1lLnB1c2hfYmFjayhpKTsKCn0KaW50IGZhY3QoaW50IHgsIGludCBrKSB7CglpbnQgcCA9IDEsIHN1bTsKCWZvciAoaW50IGkgPSAwLCBsbiA9IHByaW1lLnNpemUoKTsgaSA8IGxuICYmIHByaW1lW2ldICogcHJpbWVbaV0gPD0geDsKCQkJKytpKSB7CgkJZm9yIChzdW0gPSAxOyB4ICUgcHJpbWVbaV0gPT0gMDsgKytzdW0sIHggLz0gcHJpbWVbaV0pCgkJCTsKCQlwICo9IHN1bTsKCQlpZiAocCA+IGspCgkJCXJldHVybiAwOwoJfQoJaWYgKHggPiAxKQoJCXAgKj0gMjsKCXJldHVybiBwID09IGs7Cn0KaW50IG1haW4oKSB7CgkvL2ZyZW9wZW4oImEuaW4iLCAiciIsIHN0ZGluKTsKCXNpdigpOwoJaW50IGFuczsKCXdoaWxlIChzY2FuZigiJWQlZCVkIiwgJm4sICZtLCAmaykgPT0gMykgewoJCWZvciAoYW5zID0gMDsgbiA8PSBtOyBhbnMgKz0gZmFjdChuKyssIGspKQoJCQk7CgkJcHJpbnRmKCIlZFxuIiwgYW5zKTsKCX0KfQoK