#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;
}