Codeforces 983A Finite or not?

题面在这里

如果是十进制的话,只要q不含除2和5之外的质因子就Finite了

那么大胆猜想,只有q只含有b所含的质因子才能Finite,否则就是Infinite

示例程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<cstdio>
typedef long long ll;
ll p,q,b;
int tst;
ll gcd(ll x,ll y){
if (y==0) return x;
return gcd(y,x%y);
}
int main(){
scanf("%d",&tst);
while (tst--){
scanf("%lld%lld%lld",&p,&q,&b);
if (p==0) {printf("Finite\n");continue;}
ll t=gcd(p,q);p/=t;q/=t;
while (q>1){
t=gcd(q,b);
if (t==1) break;
while (q%t==0) q/=t;
}
if (q==1) printf("Finite\n");else printf("Infinite\n");
}
return 0;
}