题意有点绕,想了很久 , 还是求教金思密达才明白了题意 , 才出的这个题。
题目就是要找一个比N大的M^x,得到M^x*x/N的最简分数 , 根据样例,分子是1时不用处理,直接除去gcd就好
没估出范围,还是改成long long交的 , 后来试一下 int WA了。
#include <cstdio>
typedef long long typen;
typen gcd (typen a , typen b){
return b?gcd(b,a%b):a;
}
typen n,m;
int main ()
{
int cas;
scanf("%d",&cas);
for (int I=1 ; I<=cas ; ++I)
{
scanf("%I64d%I64d",&n,&m);
typen x=1;
typen tmp=m;
for ( ; tmp<n ; ++x,tmp*=m);
//printf("x=%d\n",x);
typen p,q;
p=tmp*x;q=n;
typen d=gcd (p,q);
printf("Case %d: %I64d/%I64d\n",I,p/d,q/d);
}
return 0;
}