HDU 4320 Arcane Numbers 1 (质因子分解)
2016-08-09 19:59
417 查看
题目:传送门。
题意:将一个A进制下的有限小数转化为B进制看是否仍为有限小数。
题解:一个A进制的小数可以下次 左移动n位变成A进制整数然后再将其转化为B进制即可 即B^m/A^n要整除,因此A的质因子B必须得全部含有。
题意:将一个A进制下的有限小数转化为B进制看是否仍为有限小数。
题解:一个A进制的小数可以下次 左移动n位变成A进制整数然后再将其转化为B进制即可 即B^m/A^n要整除,因此A的质因子B必须得全部含有。
#include <iostream> #include <math.h> #include <string.h> #include <algorithm> #include <stdio.h> #include <stdlib.h> const int maxn=1000100; bool isprime[maxn]; int prime[maxn]; using namespace std; int i,j,k=0; void pr() { for(i=2;i<=maxn;i++) { if(!isprime[i]) { for(j=i+i;j<=maxn;j=j+i) isprime[j]=true; prime[k++]=i; } } } int main() { pr(); int t,c=1; bool flag=true; long long a,b; scanf("%d",&t); while(t--) { scanf("%lld%lld",&a,&b); flag=true; for(i=0;i<k&&prime[i]<=a;i++) { if(a%prime[i]==0) { if(b%prime[i]!=0) { flag=false; break; } } while(a%prime[i]==0) a/=prime[i]; } if(b%a!=0) flag=false; if(flag) cout<<"Case #"<<c++<<": YES"<<endl; else cout<<"Case #"<<c++<<": NO"<<endl; } return 0; }
相关文章推荐
- HDU 4320 Arcane Numbers 1
- HDU 4320 Arcane Numbers 1(12年多校3-数学)
- HDU 4320 - Arcane Numbers 1 / SWUN 1429 - 进制转化
- HDU - 4320 Arcane Numbers 1
- hdu 4320 Arcane Numbers 1(小数进制转化后是否有限位)
- HDU 4320 Arcane Numbers 1
- HDU-4320 Arcane Numbers 1
- HDU - 4320 Arcane Numbers 1
- hdu 4320 Arcane Numbers 1
- hdu - 4320 - Arcane Numbers 1 - 想法题
- HDU 4320 Arcane Numbers 1(质因子)
- hdu 4320 Arcane Numbers 1
- HDU 4320 Arcane Numbers 1
- hdu 4320 Arcane Numbers 1 多校联合赛(三)第一题
- HDU 4320 Arcane Numbers 1(质因子包含)
- hdu 4320 Arcane Numbers 1
- HDU 4320 Arcane Numbers 1 (数论)
- hdu 4320 Arcane Numbers 1 多校联合赛(三)第一题
- HDU 4320 Arcane Numbers 1 (数论)
- HDU 4321 Arcane Numbers 2 按位处理, 想法计数题