題意:
將一個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; }