hdu 4320 Arcane Numbers 1(小数进制转化后是否有限位)

来源:互联网 发布:vb中str是什么意思 编辑:程序博客网 时间:2024/05/23 11:43

Arcane Numbers 1

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2380    Accepted Submission(s): 758


Problem Description
Vance and Shackler like playing games. One day, they are playing a game called "arcane numbers". The game is pretty simple, Vance writes down a finite decimal under base A, and then Shackler translates it under base B. If Shackler can translate it into a finite decimal, he wins, else it will be Vance’s win. Now given A and B, please help Vance to determine whether he will win or not. Note that they are playing this game using a mystery language so that A and B may be up to 10^12.
 

Input
The first line contains a single integer T, the number of test cases.
For each case, there’s a single line contains A and B.
 

Output
For each case, output “NO” if Vance will win the game. Otherwise, print “YES”. See Sample Output for more details.
 

Sample Input
35 52 31000 2000
 

Sample Output
Case #1: YESCase #2: NOCase #3: YES
 

Author
BJTU
 

Source
2012 Multi-University Training Contest 3
 

Recommend
zhoujiaqi2010
 

题意:将a进制的有限小数转化为b进制的小数是否是有限位的

题解:若b有a的所有质因子,则可以,反之不可以


#include<stdio.h>long long gcd(long long a,long long b){    if(b==0) return a;    else return gcd(b,a%b);}int main(){    int t,cas=1;    long long x,y,temp;    scanf("%d",&t);    while(t--)    {        scanf("%I64d%I64d",&x,&y);        temp=x;        while(temp>1)        {            temp=gcd(x,y);            x/=temp;        }        if(x>1) printf("Case #%d: NO\n",cas++);        else printf("Case #%d: YES\n",cas++);    }    return 0;}


原创粉丝点击