#include<iostream>
#include<stdio.h>
#define MAX_NUM 1000001
int primes[MAX_NUM];
int nfactor[15][1000010];
void gen_sieve_primes(void)
{
primes[2]=1;
for(int i=4;i<MAX_NUM;i+=2)
primes[i]++;
for (int p=3; p<MAX_NUM; p+=2)
{
if(primes[p] == 0)
{
primes[p] = 1;
for(int j = 2*p;j<MAX_NUM;j+=p)
primes[j]++;
}
}
for(int i=1;i<MAX_NUM;i++)
{
for(int j=0;j<11;j++)
{
if(primes[i]==j)
{
nfactor[j][i]=nfactor[j][i-1]+1;
}
else
{
nfactor[j][i]=nfactor[j][i-1];
}
}
}
}
int main()
{
gen_sieve_primes();
int t,a,b, n, count=0;
scanf("%d",&t);
while(t--)
{
count =0;
scanf("%d %d %d",&a,&b,&n);
printf("%d\n",nfactor[n][b]-nfactor[n][a-1]);
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CiNkZWZpbmUgTUFYX05VTSAxMDAwMDAxIAppbnQgcHJpbWVzW01BWF9OVU1dOwppbnQgbmZhY3RvclsxNV1bMTAwMDAxMF07Cgp2b2lkIGdlbl9zaWV2ZV9wcmltZXModm9pZCkKewogICAgcHJpbWVzWzJdPTE7CiAgICBmb3IoaW50IGk9NDtpPE1BWF9OVU07aSs9MikKICAgICAgICBwcmltZXNbaV0rKzsKCiAgICBmb3IgKGludCBwPTM7IHA8TUFYX05VTTsgcCs9MikKICAgIHsKICAgICAgICBpZihwcmltZXNbcF0gPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIHByaW1lc1twXSA9IDE7CiAgICAgICAgICAgIGZvcihpbnQgaiA9IDIqcDtqPE1BWF9OVU07ais9cCkKICAgICAgICAgICAgICAgIHByaW1lc1tqXSsrOwogICAgICAgIH0KICAgIH0KCiAgICBmb3IoaW50IGk9MTtpPE1BWF9OVU07aSsrKQogICAgewogICAgICAgIGZvcihpbnQgaj0wO2o8MTE7aisrKQogICAgICAgIHsKICAgICAgICAgICAKICAgICAgICAgICAgaWYocHJpbWVzW2ldPT1qKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZmFjdG9yW2pdW2ldPW5mYWN0b3Jbal1baS0xXSsxOwogICAgICAgICAgICB9IAogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5mYWN0b3Jbal1baV09bmZhY3RvcltqXVtpLTFdOwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBnZW5fc2lldmVfcHJpbWVzKCk7CiAgICAKICAgIGludCB0LGEsYiwgbiwgY291bnQ9MDsKICAgIHNjYW5mKCIlZCIsJnQpOwogICAgCiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgY291bnQgPTA7CiAgICAgICAgc2NhbmYoIiVkICVkICVkIiwmYSwmYiwmbik7CiAgICAgICAgcHJpbnRmKCIlZFxuIixuZmFjdG9yW25dW2JdLW5mYWN0b3Jbbl1bYS0xXSk7CiAgICB9Cn0=