QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#462465 | #249. Miller Rabin 算法 | lmeowdn | WA | 111ms | 3928kb | C++14 | 1.7kb | 2024-07-03 19:55:52 | 2024-07-03 19:55:52 |
Judging History
answer
//Shirasu Azusa 2024.7
#include <bits/stdc++.h>
#define fi first
#define se second
#define eb emplace_back
#define mp make_pair
using namespace std;
typedef long double ld;
typedef long long ll;
typedef unsigned long long ull;
typedef __int128 i128;
template<class T,class S>
bool chmax(T &a,const S b) {return (a<b?a=b,1:0);}
template<class T,class S>
bool chmin(T &a,const S b) {return (a>b?a=b,1:0);}
int popcnt(int x) {return __builtin_popcount(x);}
int popcnt(ll x) {return __builtin_popcountll(x);}
int topbit(int x) {return (x==0?-1:31-__builtin_clz(x));}
int topbit(ll x) {return (x==0?-1:63-__builtin_clzll(x));}
int lowbit(int x) {return (x==0?-1:__builtin_ctz(x));}
int lowbit(ll x) {return (x==0?-1:__builtin_ctzll(x));}
#define int long long
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<pii> vp;
typedef tuple<int,int,int> tiii;
int read() {
int x=0,w=1; char c=getchar();
while(!isdigit(c)) {if(c=='-') w=-1; c=getchar();}
while(isdigit(c)) {x=x*10+(c-'0'); c=getchar();}
return x*w;
}
int pr[7]={2,325,9375,28178,450775,9780504,1795265022};
int ksm(i128 x,i128 y,i128 p,i128 r=1) {
for(;y;y>>=1,x=x*x%p) if(y&1) r=r*x%p; return r;
}
bool chk(int x,int n) {
if(x%n==0) return 1; int g=ksm(x,n-1,n); if(g!=1) return 0;
for(int y=n-1;y>1&&y%2==0;) {
y=y/2; int g=ksm(x,y,n);
if(g==n-1) break; else if(g!=1) return 0;
} return 1;
}
char work(int n) {
if(n==2) return 'Y'; else if(n==1||n%2==0||n%5==0) return 'N';
for(int x:pr) if(!chk(x,n)) return 'N'; return 'Y';
}
signed main() {
int x; while(scanf("%lld",&x)!=EOF) putchar(work(x)),putchar('\n');
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 111ms
memory: 3668kb
input:
996581938833575363 971646509461160317 773155992127361153 161603952726515268 540879144500456953 476831214764178553 784255927154201144 671096087619405061 805545190025269709 339546334309245137 337726347922962343 222956293307015293 809183111090275843 799050063298926344 691718101820598109 646220213113313...
output:
N Y Y N Y Y N Y Y Y Y Y Y N Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y N Y Y N Y Y Y Y Y Y Y N Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y ...
result:
ok 15000 lines
Test #2:
score: 0
Accepted
time: 68ms
memory: 3600kb
input:
292094793288448159 456918231632780153 52701684901220791 755430520029564023 202037556396478813 224321375550698537 953758266735232253 68668310674613297 730895589897264853 344428227893888993 521429852982590257 547788290718839273 332181270020381261 876010276438312333 906474115171090099 26200832832269134...
output:
N N Y N N N Y N Y N N N N N Y N Y N Y Y N Y Y N Y N Y N Y N Y N N Y N Y Y Y N N Y N Y Y Y N N N Y N N Y Y N N N N Y N N N N N Y Y N N N N N Y N Y Y Y N N Y N Y N Y N N Y Y N N N N Y Y N Y N N N N Y Y Y N Y N N Y N N Y Y Y Y Y Y Y N Y N N N Y N N N Y N Y N N Y N N N Y Y Y N Y Y Y N Y N N N Y N Y N Y ...
result:
ok 15000 lines
Test #3:
score: 0
Accepted
time: 31ms
memory: 3572kb
input:
37686301288201 83818601792630641 73103085605161 146313732835525609 228087610722516540 343255869017446321 132173451449926849 461798530935794823 171613522570639321 746139393134794441 700705956080852569 186402586980996590 116687280644971921 439801455648601 608187424599317161 582838391995869241 29815648...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 15000 lines
Test #4:
score: 0
Accepted
time: 36ms
memory: 3664kb
input:
37524996401344453 37525085907733993 37525091397104033 37525113078950641 37525124589187073 37525157683455557 37525199043948023 37525222109877577 37525226953298221 37525259363784397 37525364799923431 37525368433484977 37525385480376751 37525430877893551 37525482942628141 37525493960687851 375255005943...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 15000 lines
Test #5:
score: 0
Accepted
time: 38ms
memory: 3664kb
input:
723245739019682401 723245866706340671 723246090945604561 723246352143004873 723246673219734913 723246738513052561 723247420392785287 723247522177775827 723247614067685477 723247698405894889 723247738890989761 723247925881512769 723248063125197301 723248128083366901 723248342755190227 723248614316335...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 15000 lines
Test #6:
score: 0
Accepted
time: 39ms
memory: 3600kb
input:
971250844965384127 971250976411543033 971251162664749381 971251210275610351 971251238585098507 971251326624493501 971252030784923551 971252481632318471 971252499214789069 971252658880954081 971252709089043401 971252873506894229 971252918907625009 971253322904807251 971253706688543701 971254502032321...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 15000 lines
Test #7:
score: 0
Accepted
time: 40ms
memory: 3928kb
input:
975097371418148287 975097379018158177 975098272399702153 975098914621552381 975098941416760309 975098970409909507 975099970219316947 975100563136905217 975100597682316769 975100651225654537 975100655012759497 975101039821060699 975101068247058001 975101132634439177 975101316642410317 975101700693099...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 15000 lines
Test #8:
score: 0
Accepted
time: 39ms
memory: 3872kb
input:
978972814118579281 978972937612021549 978973242843932981 978974480980701913 978974489577710953 978974589631755737 978974652838559653 978974658221459201 978974733332204561 978974806453119673 978975038338417369 978975110530630693 978975222405387461 978975882983990251 978975989516617181 978976060640390...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 15000 lines
Test #9:
score: 0
Accepted
time: 39ms
memory: 3708kb
input:
982815691526899273 982816054071509621 982817060169508141 982817430437283641 982817460181693753 982817461596064513 982817485076790919 982817582130019357 982817899620348031 982818063245540321 982818404515863917 982818922902003769 982818962551574209 982819103882371901 982819366081816363 982819443060395...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 15000 lines
Test #10:
score: 0
Accepted
time: 40ms
memory: 3704kb
input:
986654079350625311 986654424121995397 986654475796632901 986654694060905039 986655094343402881 986655789507565913 986655796720217821 986655894969286081 986656845736427113 986656893630525577 986656899715648481 986656967546105017 986656981419420361 986657020079418001 986657751538639291 986657836955081...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 15000 lines
Test #11:
score: 0
Accepted
time: 40ms
memory: 3640kb
input:
990506396486037061 990506434942654297 990506583343038737 990506633090169007 990506821692002869 990507338152078781 990507642857678513 990509266701009901 990509413103916829 990509672526354901 990509839077929941 990509905448558701 990509948480836033 990509955041980081 990510051552449809 990510327054720...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 15000 lines
Test #12:
score: 0
Accepted
time: 39ms
memory: 3672kb
input:
994436482283245501 994436834643112771 994437438334877633 994438185016980251 994438518667870537 994438572113239849 994439331088447063 994440181755753253 994440412354207381 994440486375543241 994440532681357841 994440572217582901 994440737643657637 994441422312035101 994441492070689121 994441676618381...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 15000 lines
Test #13:
score: 0
Accepted
time: 14ms
memory: 3604kb
input:
998325346159240081 998325547301434393 998326073288529899 998326268408182393 998326321136886799 998326462535387389 998327440063121761 998327468968116311 998327968547706001 998328232689759721 998328353036363983 998328398641461907 998328773289179851 998329620625002751 998329775152828861 998329853754818...
output:
N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
ok 6507 lines
Test #14:
score: -100
Wrong Answer
time: 11ms
memory: 3928kb
input:
100052803951001600 105728860800000000 893853530276283200 6455400775964240 685235886664718720 793482962376918720 758221361453121056 37589855997724840 1128108118059 895139368646464000 483432966915053800 237004108121200000 22178 645282657277920000 813367395538094000 1136069149644000 281785329587500000 ...
output:
N N N N N N N N N N N N N N N N N N N N N N Y N N N N N N N Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N ...
result:
wrong answer 33729th lines differ - expected: 'Y', found: 'N'