hdu 4320 Arcane Numbers 1
2012-08-03 15:34
393 查看
ArcaneNumbers1
TimeLimit:2000/1000MS(Java/Others)MemoryLimit:32768/32768K(Java/Others) TotalSubmission(s):1468AcceptedSubmission(s):466
[align=left]ProblemDescription[/align]
VanceandShacklerlikeplayinggames.Oneday,theyareplayingagamecalled"arcanenumbers".Thegameisprettysimple,VancewritesdownafinitedecimalunderbaseA,andthenShacklertranslatesitunderbaseB.IfShacklercantranslateitintoafinitedecimal,hewins,elseitwillbeVance’swin.NowgivenAandB,pleasehelpVancetodeterminewhetherhewillwinornot.NotethattheyareplayingthisgameusingamysterylanguagesothatAandBmaybeupto10^12.
[align=left]Input[/align]
ThefirstlinecontainsasingleintegerT,thenumberoftestcases.
Foreachcase,there’sasinglelinecontainsAandB.
[align=left]Output[/align]
Foreachcase,output“NO”ifVancewillwinthegame.Otherwise,print“YES”.SeeSampleOutputformoredetails.
[align=left]SampleInput[/align]
3
55
23
10002000
[align=left]SampleOutput[/align]
Case#1:YES
Case#2:NO
Case#3:YES
[align=left]Author[/align]
VanceandShackler
[align=left]Source[/align]
[align=left]Recommend[/align]
zhoujiaqi2010
//不懂意思、到网上查了下意思、就是问A的因子数B里面是否都有 #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> #include<cmath> #include<queue> #include<vector> #defineN1000000 usingnamespacestd; boolh[1000001]; intrc[100000]; intcnt; voidset() { inti,j,k=1; for(i=4;i<N;i+=2) h[i]=1; for(i=3;i<1000;i+=2) if(!h[i]) { for(j=i*i;j<N;j+=i) h[j]=1; } for(i=3;i<N;i+=2) if(!h[i])rc[k++]=i; rc[0]=2;rc[k]=1000000000; } intmain() { set(); intT,t=1; __int64A,B; inti,k; __int64c[22];//卡这里好久,A可能是超过int范围的素数、所以、悲剧 boolb; scanf("%d",&T); while(T--) { scanf("%I64d%I64d",&A,&B); inttemp=sqrt(double(A)); for(k=i=0;rc[i]<=temp;i++) { b=0; while(A%rc[i]==0) { b=1; A/=rc[i]; } if(b)c[k++]=rc[i]; if(A==1)break; } if(A!=1)c[k++]=A; for(i=0;i<k;i++) if(B%c[i]) break; printf("Case#%d:",t++); printf(i==k?"YES\n":"NO\n"); } return0; } //再插段好点的代码
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> #include<cmath> #include<queue> #include<vector> #defineN1000000 usingnamespacestd; boolh[1000001]; intrc[100000]; intcnt; voidset() { inti,j,k=1; for(i=4;i<N;i+=2) h[i]=1; for(i=3;i<1000;i+=2) if(!h[i]) { for(j=i*i;j<N;j+=i) h[j]=1; } for(i=3;i<N;i+=2) if(!h[i])rc[k++]=i; rc[0]=2;rc[k]=1000000000; } intmain() { set(); intT,t=1; __int64A,B; inti,k; intc[22]; boolb; scanf("%d",&T); while(T--) { scanf("%I64d%I64d",&A,&B); inttemp=sqrt(double(A)); for(b=1,i=0;rc[i]<=temp;i++) { if(A%rc[i]==0) { if(B%rc[i]!=0) { b=0; break; } while(A%rc[i]==0) A/=rc[i]; } } if(A!=1&&(B%A)!=0)b=0; printf("Case#%d:",t++); if(b)printf("YES\n"); elseprintf("NO\n"); } return0; }
相关文章推荐
- hdu 4320 Arcane Numbers 1 多校联合赛(三)第一题
- HDU 4320 Arcane Numbers 1 (质因子分解)
- HDU 4320 Arcane Numbers 1(12年多校3-数学)
- HDU 4320 Arcane Numbers 1
- hdu - 4320 - Arcane Numbers 1 - 想法题
- HDU 4320 Arcane Numbers 1 (数论)
- 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 4321 Arcane Numbers 2 按位处理, 想法计数题