程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> hdu4320Arcane Numbers

hdu4320Arcane Numbers

編輯:關於C++

 

 

題意:

將一個A進制下的有限小數轉化為B進制看是否仍為有限小數

 

分析:

 

一個A進制的小數可以下次 左移動n位變成A進制整數

然後再將其轉化為B進制即可 

即B^m/A^n要整除,因此A的質因子B必須得全部含有。

 

代碼如下:

 

#include 
#include 
#include 
#include 
using namespace std;

typedef long long LL;

bool check(LL a,LL b)
{
    for(LL i=2;i*i<=a;i++){
        if(a%i==0){
            if(b%i) return false;
            while(a%i==0) a/=i;
        }
    }
    if(b%a) return false;
    return true;
}

int main()
{
    int t,cas=1;
    scanf(%d,&t);
    while(t--){
        LL a,b;
        scanf(%I64d%I64d,&a,&b);
        printf(Case #%d: ,cas++);
        if(check(a,b))
            puts(YES);
        else
            puts(NO);
    }
    return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved