QOJ.ac
QOJ
QOJ is currently under a maintenance. It might be unavailable in the following a few hours.
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#92696 | #998. 素数分解 | sssmzy# | AC ✓ | 6019ms | 3544kb | C++14 | 2.5kb | 2023-03-30 20:59:41 | 2023-03-30 20:59:44 |
Judging History
answer
#include<bits/stdc++.h>
#define dg(x) cerr<<"line: "<<__LINE__<<" "<<#x<<": "<<x<<endl
#define gc()(xS==xTT&&(xTT=(xS=xB)+fread(xB,1,1<<20,stdin),xS==xTT)?0:*xS++)
#define pc(x)(p3-obuf<1000000)?(*p3++=x):(fwrite(obuf,p3-obuf,1,stdout),p3=obuf,*p3++=x)
using namespace std;typedef long long ll;typedef double db;typedef long double ld;typedef unsigned long long ull;typedef unsigned int ui;char xch,xB[1<<20],*xS=xB,*xTT=xB,obuf[1000000],*p3=obuf;inline ll read(){char ch=gc();ll x=0,f=1;while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=gc();}while('0'<=ch&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=gc();}return x*f;}static char cc[20];template<typename item>inline void pt( item x){ int len=0;if(!x)pc('0');if(x<0)x=-x,pc('-');while(x)cc[len++]=x%10+'0',x/=10;while(len--)pc(cc[len]);}inline void pS(string s){for(int i=0;i<s.length();i++)pc(s[i]);}inline ll read2(){char ch=gc();ll x=0,f=1;while(ch<'0'||ch>'1'){if(ch=='-')f=-1;ch=gc();}while('0'<=ch&&ch<='9'){x=(x<<1)+(ch^48);ch=gc();}return x*f;}inline __int128 iread(){char ch=gc();__int128 x=0,f=1;while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=gc();}while('0'<=ch&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=gc();}return x*f;}
__int128 x;int pri[15]={2,3,5,7,11,13,17,19,23,29,31,37,43,47,53};
inline __int128 mul(__int128 x,__int128 y,__int128 n) {
__int128 z = x * y - (__int128)((__float128)(x) * y / n) * n;
if (z > n)
z -= n;
return z < 0 ? z + n : z;
}
__int128 Abs(__int128 x){return x<0?-x:x;}
__int128 Pow(__int128 a,__int128 b,__int128 mod){ll ret=1;for(;b;b>>=1,a=mul(a,a,mod))if(b&1)ret=mul(ret,a,mod);return ret;}
bool mb(__int128 x)
{
if(x==1)return 1;
__int128 m=x-1;int t=0;while(!(m%2))m>>=1,t++;
for(int i=0;i<15;i++)
{
if(pri[i]==x)return 1;
__int128 v=Pow(pri[i],m,x);
for(int j=0;j<t;j++)
{
__int128 v2=mul(v,v,x);
if(v2==1&&v!=1&&v!=x-1)return 0;
v=v2;
}
if(v!=1)return 0;
}
return 1;
}
mt19937_64 rd(random_device{}());
__int128 ans[3];int len;
__int128 pr(__int128 x)
{
__int128 t=0,s=0,c=(((__int128)rd())*rd()%x+x)%x;
for(int goal=128;;goal<<=1,s=t)
{
__int128 v=1;
for(int step=1;step<=goal;step++)
{
t=(mul(t,t,x)+c)%x;
v=mul(v,Abs(t-s),x);
if(!(step&511))
{
__int128 d=__gcd(x,v);
if(d>1)return d;
}
}
__int128 d=__gcd(x,v);
if(d>1)return d;
}
return 0;
}
void wk(__int128 x)
{
ll d=pr(x);while(d>=x)d=pr(x);
ans[1]=d,ans[2]=x/d,len=2;
}
signed main()
{
x=iread();wk(x);
sort(ans+1,ans+1+len);
for(int i=1;i<=len;i++)pt(ans[i]),pc(' ');
fwrite(obuf,p3-obuf,1,stdout);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 3540kb
input:
9866369
output:
113 87313
result:
ok single line: '113 87313 '
Test #2:
score: 0
Accepted
time: 2ms
memory: 3436kb
input:
9676411
output:
617 15683
result:
ok single line: '617 15683 '
Test #3:
score: 0
Accepted
time: 2ms
memory: 3544kb
input:
9717809
output:
727 13367
result:
ok single line: '727 13367 '
Test #4:
score: 0
Accepted
time: 2ms
memory: 3468kb
input:
9957119
output:
829 12011
result:
ok single line: '829 12011 '
Test #5:
score: 0
Accepted
time: 2ms
memory: 3424kb
input:
9868337
output:
983 10039
result:
ok single line: '983 10039 '
Test #6:
score: 0
Accepted
time: 3ms
memory: 3540kb
input:
9561023
output:
1163 8221
result:
ok single line: '1163 8221 '
Test #7:
score: 0
Accepted
time: 3ms
memory: 3428kb
input:
9545761
output:
1367 6983
result:
ok single line: '1367 6983 '
Test #8:
score: 0
Accepted
time: 2ms
memory: 3416kb
input:
9607667
output:
1621 5927
result:
ok single line: '1621 5927 '
Test #9:
score: 0
Accepted
time: 3ms
memory: 3428kb
input:
9597001
output:
2161 4441
result:
ok single line: '2161 4441 '
Test #10:
score: 0
Accepted
time: 3ms
memory: 3464kb
input:
9761267
output:
3023 3229
result:
ok single line: '3023 3229 '
Test #11:
score: 0
Accepted
time: 2ms
memory: 3472kb
input:
982258310053
output:
3947 248861999
result:
ok single line: '3947 248861999 '
Test #12:
score: 0
Accepted
time: 1ms
memory: 3420kb
input:
951649112653
output:
60727 15670939
result:
ok single line: '60727 15670939 '
Test #13:
score: 0
Accepted
time: 2ms
memory: 3532kb
input:
970510479737
output:
82361 11783617
result:
ok single line: '82361 11783617 '
Test #14:
score: 0
Accepted
time: 3ms
memory: 3396kb
input:
986989368881
output:
104347 9458723
result:
ok single line: '104347 9458723 '
Test #15:
score: 0
Accepted
time: 1ms
memory: 3424kb
input:
957993963593
output:
137957 6944149
result:
ok single line: '137957 6944149 '
Test #16:
score: 0
Accepted
time: 2ms
memory: 3424kb
input:
994965772309
output:
189859 5240551
result:
ok single line: '189859 5240551 '
Test #17:
score: 0
Accepted
time: 2ms
memory: 3472kb
input:
978534040373
output:
243157 4024289
result:
ok single line: '243157 4024289 '
Test #18:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
971024997479
output:
316531 3067709
result:
ok single line: '316531 3067709 '
Test #19:
score: 0
Accepted
time: 3ms
memory: 3428kb
input:
953600891731
output:
550909 1730959
result:
ok single line: '550909 1730959 '
Test #20:
score: 0
Accepted
time: 1ms
memory: 3432kb
input:
957601483897
output:
974189 982973
result:
ok single line: '974189 982973 '
Test #21:
score: 0
Accepted
time: 2ms
memory: 3424kb
input:
977141658538805467
output:
245593 3978703214419
result:
ok single line: '245593 3978703214419 '
Test #22:
score: 0
Accepted
time: 3ms
memory: 3476kb
input:
993640296811069513
output:
15772423 62998582831
result:
ok single line: '15772423 62998582831 '
Test #23:
score: 0
Accepted
time: 3ms
memory: 3536kb
input:
972033526800786343
output:
22838183 42561771521
result:
ok single line: '22838183 42561771521 '
Test #24:
score: 0
Accepted
time: 4ms
memory: 3472kb
input:
954171962745034819
output:
35159623 27138287653
result:
ok single line: '35159623 27138287653 '
Test #25:
score: 0
Accepted
time: 6ms
memory: 3476kb
input:
978341504612724647
output:
52896463 18495404969
result:
ok single line: '52896463 18495404969 '
Test #26:
score: 0
Accepted
time: 3ms
memory: 3436kb
input:
964156325695679951
output:
82257599 11721182449
result:
ok single line: '82257599 11721182449 '
Test #27:
score: 0
Accepted
time: 1ms
memory: 3428kb
input:
981810768141725077
output:
120632453 8138861009
result:
ok single line: '120632453 8138861009 '
Test #28:
score: 0
Accepted
time: 6ms
memory: 3436kb
input:
996600025433706263
output:
188473367 5287749889
result:
ok single line: '188473367 5287749889 '
Test #29:
score: 0
Accepted
time: 14ms
memory: 3420kb
input:
953178770133147331
output:
434148317 2195514143
result:
ok single line: '434148317 2195514143 '
Test #30:
score: 0
Accepted
time: 8ms
memory: 3416kb
input:
979704186959920183
output:
965382697 1014835039
result:
ok single line: '965382697 1014835039 '
Test #31:
score: 0
Accepted
time: 4ms
memory: 3396kb
input:
9681177706327259719477027
output:
30892241 313385413066253747
result:
ok single line: '30892241 313385413066253747 '
Test #32:
score: 0
Accepted
time: 22ms
memory: 3412kb
input:
9940536208068119834895493
output:
9801019853 1014234881385881
result:
ok single line: '9801019853 1014234881385881 '
Test #33:
score: 0
Accepted
time: 49ms
memory: 3432kb
input:
9997038881982298860346319
output:
17471050273 572205947883503
result:
ok single line: '17471050273 572205947883503 '
Test #34:
score: 0
Accepted
time: 61ms
memory: 3392kb
input:
9756859113937123210682929
output:
30453215099 320388473999171
result:
ok single line: '30453215099 320388473999171 '
Test #35:
score: 0
Accepted
time: 54ms
memory: 3472kb
input:
9990078255400923282753323
output:
54825911561 182214540004243
result:
ok single line: '54825911561 182214540004243 '
Test #36:
score: 0
Accepted
time: 273ms
memory: 3412kb
input:
9883626478214751636971843
output:
99236894717 99596289327679
result:
ok single line: '99236894717 99596289327679 '
Test #37:
score: 0
Accepted
time: 141ms
memory: 3504kb
input:
9573361345198621696137959
output:
174744513737 54784903631407
result:
ok single line: '174744513737 54784903631407 '
Test #38:
score: 0
Accepted
time: 315ms
memory: 3532kb
input:
9625069927040072137408201
output:
315510198349 30506367075949
result:
ok single line: '315510198349 30506367075949 '
Test #39:
score: 0
Accepted
time: 139ms
memory: 3476kb
input:
9558955213557944940797347
output:
961448896637 9942239516831
result:
ok single line: '961448896637 9942239516831 '
Test #40:
score: 0
Accepted
time: 550ms
memory: 3464kb
input:
9840941836621191397321379
output:
3053341569527 3223007191477
result:
ok single line: '3053341569527 3223007191477 '
Test #41:
score: 0
Accepted
time: 10ms
memory: 3476kb
input:
961656201462920497194293996611
output:
973825889 987503220365627902499
result:
ok single line: '973825889 987503220365627902499 '
Test #42:
score: 0
Accepted
time: 288ms
memory: 3396kb
input:
996526819694097128105196470881
output:
994411349447 1002127359314908823
result:
ok single line: '994411349447 1002127359314908823 '
Test #43:
score: 0
Accepted
time: 603ms
memory: 3536kb
input:
984638359916649895753226868473
output:
1913886315953 514470661976784841
result:
ok single line: '1913886315953 514470661976784841 '
Test #44:
score: 0
Accepted
time: 1111ms
memory: 3416kb
input:
954594052218344282851704873817
output:
3979498549097 239877974684763761
result:
ok single line: '3979498549097 239877974684763761 '
Test #45:
score: 0
Accepted
time: 254ms
memory: 3424kb
input:
951130323482838313925006521277
output:
7557378146273 125854536464064349
result:
ok single line: '7557378146273 125854536464064349 '
Test #46:
score: 0
Accepted
time: 1139ms
memory: 3396kb
input:
962697697567853678189739826037
output:
15100422367399 63753031150060163
result:
ok single line: '15100422367399 63753031150060163 '
Test #47:
score: 0
Accepted
time: 2407ms
memory: 3424kb
input:
956492846963172046572961978627
output:
30582959699219 31275352561367633
result:
ok single line: '30582959699219 31275352561367633 '
Test #48:
score: 0
Accepted
time: 3244ms
memory: 3396kb
input:
990250331253981534128026179673
output:
61400770095961 16127653280347393
result:
ok single line: '61400770095961 16127653280347393 '
Test #49:
score: 0
Accepted
time: 3310ms
memory: 3408kb
input:
963782379204510691122291047909
output:
244564652505673 3940808163935933
result:
ok single line: '244564652505673 3940808163935933 '
Test #50:
score: 0
Accepted
time: 6019ms
memory: 3344kb
input:
955342769363561101863533963531
output:
973806882626147 981039245468473
result:
ok single line: '973806882626147 981039245468473 '