zoukankan      html  css  js  c++  java
  • 2012 #3 Arcane Numbers

    Arcane Numbers 1
    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

    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

    3 5 5 2 3 1000 2000
     

    Sample Output

    Case #1: YES Case #2: NO Case #3: YES
     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 long long gcd(long long a,long long b) 
     7 { 
     8     if(a<b) 
     9         return gcd(b,a); 
    10     else if(b==0) 
    11         return a; 
    12     else
    13         return gcd(b,a%b); 
    14 }
    15 
    16 int main()
    17 {
    18     int T,ca=1;
    19     long long A,B;
    20     int i,j,k,flg;
    21     scanf("%d",&T);
    22     while(T--)
    23     {
    24         scanf("%I64d %I64d",&A,&B);
    25         long long C=gcd(A,B),D;
    26         A=A/C,B=B/C;
    27         flg=1;
    28         if(B>1)
    29         {
    30             while(1)
    31             {
    32                 if(B==1)
    33                     break;
    34                 D=gcd(B,C);
    35                 if(D==1)
    36                 {
    37                     flg=0;
    38                     break;
    39                 }
    40                 B=B/D;
    41             }
    42         }
    43         if(A>1)
    44         {
    45             while(1)
    46             {
    47                 if(A==1)
    48                     break;
    49                 D=gcd(A,C);
    50                 if(D==1)
    51                 {
    52                     flg=0;
    53                     break;
    54                 }
    55                 A=A/D;
    56             }
    57         }
    58         if(flg==1)
    59             printf("Case #%d: YES
    ",ca);
    60         else
    61             printf("Case #%d: NO
    ",ca);
    62         ca++;
    63     }
    64     return 0;
    65 }
    View Code
  • 相关阅读:
    python学习笔记(五)---sublime text 多行代码注释快捷键
    python学习笔记(四)---python不能输出中文问题
    python学习笔记(三)---python关键字及其用法
    python学习笔记(二)---编辑工具sublimeText3运行python
    python学习笔记(一)---python下载以及环境的安装
    idea上查看本文件svn修改的历史版本
    关于app
    Git 上传文件到 码云 gitee
    Vue 图片引入
    Eslint 规则说明
  • 原文地址:https://www.cnblogs.com/cyd308/p/4771446.html
Copyright © 2011-2022 走看看