#include <cstdio>
#include <cstring>

const int MAXN=1E4+10;
int cnt,last;
int pr[MAXN],f[MAXN];

int prime(int n)
{
	for (int i=0;pr[i]*pr[i]<=n;i++)
	if (n%pr[i]==0) return 0;
	return 1;
}

int fun(int n)
{
	int k=1;
	for (int i=0;pr[i]<=n&&i<=cnt;i++)
	if (n%pr[i]==0)
	{
		k*=pr[i]-1;
		n/=pr[i];
		while(n%pr[i]==0)
		{
			k*=pr[i];
			n/=pr[i];
		}
	}
	return k;
}

int solve(int n,int &num,int &den)
{
	if (n<last)
	{
		int t=3*f[n]-1;
		if (!(t&1)) num=t/2,den=1;
		else num=t,den=2;
		return f[n];
	}
	for (int i=last;i<n;i++)
	f[i+1]=f[i]+fun(i+1);	
	last=n;	
	int t=3*f[n]-1;
	if (!(t&1)) num=t/2,den=1;
	else num=t,den=2;
	return f[n];
}

int main()
{
	int T,n,p,num,den;
	pr[cnt=0]=2;last=0;f[0]=0;
	for (int i=3;i<MAXN;i++)
	if (prime(i))
		pr[++cnt]=i;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d%d",&n,&p);
		solve(p,num,den);
		if (den==1) printf("%d %d\n",n,num);
		else printf("%d %d/%d\n",n,num,den);
	}
}
