#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>usingnamespacestd;
constint maxn=2000;
int f[maxn+10][maxn+10],g[maxn+10],a[maxn+10],b[maxn+10];
int n,i,t,j,k,l,m,x,y,p,q;
int main(){
freopen("problem.in","r",stdin);freopen("problem.out","w",stdout);
scanf("%d%d",&l,&k);
j=1;
while (k>1){
j++;
if (k%j)continue;
t=0;
while (!(k%j)) k/=j,t++;
if (!x) x=j,p=t;
else y=j,q=t;
}
for (i=1;i<=maxn;i++){
a[i]=a[i-1];b[i]=b[i-1];
t=i;
while (!(t%x)) t/=x,a[i]++;
if (!y) continue;
t=i;
while (!(t%y)) t/=y,b[i]++;
}
for (j=0;j<=maxn;j++)
for (i=0;i<=maxn;i++){
if (j) f[i][j]=f[i][j-1];
if (a[i]-a[j]-a[i-j]>=p && b[i]-b[j]-b[i-j]>=q) f[i][j]++;
}
while (l){
l--;
scanf("%d%d",&n,&m);k=0;
for (i=0;i<=n;i++)
k+=f[i][m];
printf("%d\n",k);
}
return0;
}