import java.util.* ;
import java.lang.* ;
public class Main
{
static int max= 1000001 ;
static int sz= 21 ;
static int [ ] [ ] sum= new int [ sz] [ max] ;
static int [ ] phi= new int [ max] ;
static int [ ] depth= new int [ max] ;
public static void init( )
{
depth[ 1 ] = 0 ;
depth[ 2 ] = 1 ;
for ( int i= 3 ; i< max; i++ )
{
depth[ i] = depth[ phi[ i] ] + 1 ;
}
for ( int i= 0 ; i< sz; i++ )
{
for ( int j= 0 ; j< max; j++ )
sum[ i] [ j] = 0 ;
}
for ( int i = 1 ; i < max; i ++ )
if ( depth[ i] < sz)
sum[ depth[ i] ] [ i] ++;
for ( int i = 0 ; i < sz; i ++ )
for ( int j = 1 ; j < max; j ++ )
sum[ i] [ j] += sum[ i] [ j - 1 ] ;
}
public static void initi( int m)
{
for ( int i= 1 ; i<= m; i++ )
{
phi[ i] = i;
}
for ( int i= 2 ; i<= m; i++ )
{
if ( phi[ i] == i)
{
for ( int j= i; j<= m; j= j+ i)
{
phi[ j] = phi[ j] / i;
phi[ j] *= ( i- 1 ) ;
}
}
}
}
{
Scanner s
= new Scanner
( System .
in ) ; initi( 1000000 ) ;
init( ) ;
int t= s.nextInt ( ) ;
while ( t--> 0 )
{
int m= s.nextInt ( ) ;
int n= s.nextInt ( ) ;
int k= s.nextInt ( ) ;
int c= 0 ;
System .
out .
println ( ( sum
[ k
] [ n
] - sum
[ k
] [ m
- 1 ] ) ) ; }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CgpwdWJsaWMgY2xhc3MgTWFpbgp7CgkgICBzdGF0aWMgaW50IG1heD0xMDAwMDAxOwoJICAgc3RhdGljIGludCBzej0yMTsKCSAgIHN0YXRpYyBpbnRbXVtdc3VtPW5ldyBpbnRbc3pdW21heF07CiAgICBzdGF0aWMgaW50IFtdcGhpPW5ldyBpbnRbbWF4XTsKICAgc3RhdGljIGludCBbXWRlcHRoPW5ldyBpbnRbbWF4XTsKICAgcHVibGljIHN0YXRpYyB2b2lkIGluaXQoKQogICB7CiAgICBkZXB0aFsxXT0wOwogICAgZGVwdGhbMl09MTsKICAgIGZvcihpbnQgaT0zO2k8bWF4O2krKykKICAgIHsKICAgICAgICBkZXB0aFtpXT1kZXB0aFtwaGlbaV1dKzE7CiAgICB9CiAgICBmb3IoaW50IGk9MDtpPHN6O2krKykKICAgIHsKICAgICAgICBmb3IoaW50IGo9MDtqPG1heDtqKyspCiAgICAgICAgc3VtW2ldW2pdPTA7CiAgICB9CiAgICBmb3IoaW50IGkgPSAxOyBpIDwgbWF4OyBpICsrKQogICAgICAgIGlmKGRlcHRoW2ldIDwgc3opCiAgICAgICAgICAgIHN1bVtkZXB0aFtpXV1baV0gKys7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgc3o7IGkgKyspCiAgICAgICAgZm9yKGludCBqID0gMTsgaiA8IG1heDsgaiArKykKICAgICAgICAgICAgc3VtW2ldW2pdICs9IHN1bVtpXVtqIC0gMV07CiAgICB9CiAgcHVibGljIHN0YXRpYyB2b2lkIGluaXRpKGludCBtKQogICAgewogICAgICAgIGZvcihpbnQgaT0xO2k8PW07aSsrKQogICAgICAgIHsKICAgICAgICAgICAgcGhpW2ldPWk7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0yO2k8PW07aSsrKQogICAgICAgIHsKICAgICAgICAgICAgaWYocGhpW2ldPT1pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IoaW50IGo9aTtqPD1tO2o9aitpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHBoaVtqXT1waGlbal0vaTsKICAgICAgICAgICAgICAgICAgICBwaGlbal0qPShpLTEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkgU2Nhbm5lciBzPW5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgaW5pdGkoMTAwMDAwMCk7CiAgICAgaW5pdCgpOwogICAgIAogICAgIGludCB0PXMubmV4dEludCgpOwogICAgIHdoaWxlKHQtLT4wKQogICAgIHsKICAgICAgICAgaW50IG09cy5uZXh0SW50KCk7CiAgICAgICAgIGludCBuPXMubmV4dEludCgpOwogICAgICAgICBpbnQgaz1zLm5leHRJbnQoKTsKICAgICAgICAgaW50IGM9MDsKICAgICAgICAKICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKChzdW1ba11bbl0gLSBzdW1ba11bbSAtIDFdKSk7CiAgICAgfQoJfQp9Cg==