#include<stdio.h>
#include<string.h>
#include<stdlib.h>
long long gcd(long long u, long long v)
{
long long temp;
while(v)
{
temp=v;
v=u%v;
u=temp;
}
return temp;
}
long long find_dignums_in_num_between_1_n(char n[],int x)
{
int len=strlen(n);
long long ninpo=1,sum=0;
for(int i=1;i<len;i++)
{
ninpo*=9;
}
if(x==0)
{sum+=9*((ninpo-1)/8);}
int flag=0;
int temp=0;
for(int i=0;i<len && flag!=1;i++,ninpo/=9)
{
temp=n[i]-'0';
if(x>=1)
{
if(temp<x)
sum+=(n[i]-'0')*ninpo;
else if(temp==x)
{
sum+=(n[i]-'0')*ninpo-1;
flag=1;
}
else if(temp>x)
{
sum+=(n[i]-'1')*ninpo;
}
}
else if(x==0)
{
if(temp>x)
{
if(i!=len-1)
sum+=(temp-1)*ninpo;
else sum+=temp*ninpo;
}
else flag=1;
}
}
temp=atol(n);
return (temp-sum);
}
int main()
{
char n[40]={0};
long long a,ans,num,t;
scanf("%lld",&t);
long long temp=0;
while(t--)
{
scanf("%lld",&num);
memset(n,0,sizeof(char)*40);
sprintf(n,"%lld",num);
a=0;
for(int i=0;i<10;i++)
{
if(i<=num)
a+=find_dignums_in_num_between_1_n(n,i);
}
num=10*num;
temp=gcd(a,num);
printf("%lld/%lld\n",a/temp,num/temp);
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CiNpbmNsdWRlPHN0ZGxpYi5oPgoKbG9uZyBsb25nIGdjZChsb25nIGxvbmcgdSwgbG9uZyBsb25nIHYpCnsKICAgICBsb25nIGxvbmcgdGVtcDsgCiAgICAgd2hpbGUodikKICAgICB7CiAgICAgICAgICB0ZW1wPXY7CiAgICAgICAgICB2PXUldjsgICAKICAgICAgICAgIHU9dGVtcDsKICAgICAgICAgIH0KICAgICByZXR1cm4gdGVtcDsKfQpsb25nIGxvbmcgZmluZF9kaWdudW1zX2luX251bV9iZXR3ZWVuXzFfbihjaGFyIG5bXSxpbnQgeCkKewogICAgICAgIAogICAgICAgIGludCBsZW49c3RybGVuKG4pOwogICAgICAgIGxvbmcgbG9uZyBuaW5wbz0xLHN1bT0wOwogICAgICAgIGZvcihpbnQgaT0xO2k8bGVuO2krKykKICAgICAgICB7CiAgICAgICAgICAgICAgICBuaW5wbyo9OTsKICAgICAgICB9CiAgICAgICAgaWYoeD09MCkKICAgICAgICB7c3VtKz05KigobmlucG8tMSkvOCk7fQogICAgICAgIGludCBmbGFnPTA7CiAgICAgICAgaW50IHRlbXA9MDsKICAgICAgICBmb3IoaW50IGk9MDtpPGxlbiAmJiBmbGFnIT0xO2krKyxuaW5wby89OSkKICAgICAgICB7CiAgICAgICAgICAgICAgdGVtcD1uW2ldLScwJzsgIAogICAgICAgICAgICAgIGlmKHg+PTEpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGVtcDx4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW0rPShuW2ldLScwJykqbmlucG87CiAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0ZW1wPT14KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtKz0obltpXS0nMCcpKm5pbnBvLTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZz0xOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGVtcD54KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtKz0obltpXS0nMScpKm5pbnBvOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBlbHNlIGlmKHg9PTApCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZih0ZW1wPngpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYoaSE9bGVuLTEpICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgIHN1bSs9KHRlbXAtMSkqbmlucG87CiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHN1bSs9dGVtcCpuaW5wbzsgICAgIAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBlbHNlIGZsYWc9MTsgICAgICAgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRlbXA9YXRvbChuKTsKICAgIHJldHVybiAodGVtcC1zdW0pOwogICAgICAgICAgIAp9CiAgICAgICAgICAKaW50IG1haW4oKQp7CiAgICBjaGFyIG5bNDBdPXswfTsKICAgIGxvbmcgbG9uZyBhLGFucyxudW0sdDsKICAgIHNjYW5mKCIlbGxkIiwmdCk7CiAgICBsb25nIGxvbmcgdGVtcD0wOwogICAgd2hpbGUodC0tKQogICAgeyAKICAgICAgICAgc2NhbmYoIiVsbGQiLCZudW0pOwogICAgICAgICBtZW1zZXQobiwwLHNpemVvZihjaGFyKSo0MCk7CiAgICAgICAgIHNwcmludGYobiwiJWxsZCIsbnVtKTsKICAgICAgICAgYT0wOwogICAgICAgIGZvcihpbnQgaT0wO2k8MTA7aSsrKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGk8PW51bSkKICAgICAgICAgICAgICAgIGErPWZpbmRfZGlnbnVtc19pbl9udW1fYmV0d2Vlbl8xX24obixpKTsKICAgICAgICB9CiAgICAgICAgbnVtPTEwKm51bTsKICAgICAgICB0ZW1wPWdjZChhLG51bSk7CiAgICAgICAgcHJpbnRmKCIlbGxkLyVsbGRcbiIsYS90ZW1wLG51bS90ZW1wKTsKfQpyZXR1cm4gMDsKfSAgICAgICAgCiAgICAgICAgICAK