QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#92696#998. 素数分解sssmzy#AC ✓6019ms3544kbC++142.5kb2023-03-30 20:59:412023-03-30 20:59:44

Judging History

This is the latest submission verdict.

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-03-30 20:59:44]
  • Judged
  • Verdict: AC
  • Time: 6019ms
  • Memory: 3544kb
  • [2023-03-30 20:59:41]
  • Submitted

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 '