#include <bits/stdc++.h>
#include<string.h>
using namespace std;
__int64 a[1000],num;
void init(__int64 n)//求一个数的质因子
{
__int64 i;
num=0;
for(i=2;i*i<=n;i++)
{
if(n%i==0)
{
a[num++]=i;
while(n%i==0)
n=n/i;
}
}
if(n>1)//这里要记得
a[num++]=n;
}
__int64 solve(__int64 m)//用队列数组实现容斥原理
{
__int64 que[10000],i,j,k,t=0,sum=0;
que[t++]=-1;
for(i=0;i<num;i++)
{
k=t;
for(j=0;j<k;j++)
que[t++]=que[j]*a[i]*(-1);
}
for(i=1;i<t;i++)
sum=sum+m/que[i];
return m-sum;
}
int main()
{
__int64 T,x,y,n,i,sum;
while(scanf("%I64d",&T)!=EOF)
{
for(i=1;i<=T;i++)
{
scanf("%I64d%I64d%I64d",&x,&y,&n);
init(n);
sum=solve(y)-solve(x-1);
printf("Case #%I64d: ",i);
printf("%I64d\n",sum);
}
}
return 0;
}