QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#476747#998. 素数分解templatetemplate#AC ✓4788ms3820kbC++171.5kb2024-07-13 20:54:472024-07-13 20:54:47

Judging History

This is the latest submission verdict.

  • [2024-07-13 20:54:47]
  • Judged
  • Verdict: AC
  • Time: 4788ms
  • Memory: 3820kb
  • [2024-07-13 20:54:47]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
template<typename T>inline void read(T &x){
	x=0;
	bool flag=0;
	char ch=getchar();
	while(ch<'0'||ch>'9') flag=flag||(ch=='-'),ch=getchar();
	while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
	x=flag?-x:x;
}
template<typename T,typename ...Args>inline void read(T &x,Args &...args){
	read(x),read(args...);
}
template<typename T>inline void prt(T x){
	if(x>9) prt(x/10);
	putchar(x%10+'0');
}
template<typename T>inline void put(T x){
	if(x<0) putchar('-'),x=-x;
	prt(x);
}
template<typename T>inline void put(char ch,T x){
	put(x),putchar(ch);
}
template<typename T,typename ...Args>inline void put(char ch,T x,Args ...args){
	put(ch,x),put(ch,args...);
}
#define ll __int128
ll n;
inline ll add(ll x,ll y,ll p){
	return x+y>=p?x+y-p:x+y;
}
inline ll mul(ll x,ll y,ll p){
	ll r=(__float128)x/p*y;
	ll res=(unsigned ll)x*y-(unsigned ll)r*p;
	return (res+p)%p;
}
mt19937 rng(924844033);
ll t;
inline ll calc(ll x){return add(mul(x,x,n),t,n);}
inline ll gcd(ll x,ll y){return !y?x:gcd(y,x%y);}
inline ll abs(ll x){return x<0?-x:x;}
int main(){	
	read(n);
	while(1){
		t=1;
		ll a=calc(rng()%n),b=calc(a);
		for(int i=1;;i=min(i<<1,128)){
			ll prod=1;
			for(int j=1;j<=i&&prod;j++){
				if(a==b) break;
				prod=mul(prod,abs(a-b),n);
				a=calc(a),b=calc(calc(b));
			}
			if(prod&&gcd(prod,n)>1){
				ll a=gcd(prod,n),b=n/gcd(prod,n);
				if(a>b) swap(a,b);
				put(' ',a,b),exit(0);
			}
			if(a==b) break;
		}
	}
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3516kb

input:

9866369

output:

113 87313 

result:

ok single line: '113 87313 '

Test #2:

score: 0
Accepted
time: 0ms
memory: 3812kb

input:

9676411

output:

617 15683 

result:

ok single line: '617 15683 '

Test #3:

score: 0
Accepted
time: 0ms
memory: 3592kb

input:

9717809

output:

727 13367 

result:

ok single line: '727 13367 '

Test #4:

score: 0
Accepted
time: 0ms
memory: 3596kb

input:

9957119

output:

829 12011 

result:

ok single line: '829 12011 '

Test #5:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

9868337

output:

983 10039 

result:

ok single line: '983 10039 '

Test #6:

score: 0
Accepted
time: 0ms
memory: 3528kb

input:

9561023

output:

1163 8221 

result:

ok single line: '1163 8221 '

Test #7:

score: 0
Accepted
time: 0ms
memory: 3608kb

input:

9545761

output:

1367 6983 

result:

ok single line: '1367 6983 '

Test #8:

score: 0
Accepted
time: 0ms
memory: 3808kb

input:

9607667

output:

1621 5927 

result:

ok single line: '1621 5927 '

Test #9:

score: 0
Accepted
time: 1ms
memory: 3808kb

input:

9597001

output:

2161 4441 

result:

ok single line: '2161 4441 '

Test #10:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

9761267

output:

3023 3229 

result:

ok single line: '3023 3229 '

Test #11:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

982258310053

output:

3947 248861999 

result:

ok single line: '3947 248861999 '

Test #12:

score: 0
Accepted
time: 0ms
memory: 3536kb

input:

951649112653

output:

60727 15670939 

result:

ok single line: '60727 15670939 '

Test #13:

score: 0
Accepted
time: 0ms
memory: 3524kb

input:

970510479737

output:

82361 11783617 

result:

ok single line: '82361 11783617 '

Test #14:

score: 0
Accepted
time: 1ms
memory: 3592kb

input:

986989368881

output:

104347 9458723 

result:

ok single line: '104347 9458723 '

Test #15:

score: 0
Accepted
time: 0ms
memory: 3524kb

input:

957993963593

output:

137957 6944149 

result:

ok single line: '137957 6944149 '

Test #16:

score: 0
Accepted
time: 0ms
memory: 3548kb

input:

994965772309

output:

189859 5240551 

result:

ok single line: '189859 5240551 '

Test #17:

score: 0
Accepted
time: 1ms
memory: 3588kb

input:

978534040373

output:

243157 4024289 

result:

ok single line: '243157 4024289 '

Test #18:

score: 0
Accepted
time: 1ms
memory: 3548kb

input:

971024997479

output:

316531 3067709 

result:

ok single line: '316531 3067709 '

Test #19:

score: 0
Accepted
time: 0ms
memory: 3816kb

input:

953600891731

output:

550909 1730959 

result:

ok single line: '550909 1730959 '

Test #20:

score: 0
Accepted
time: 1ms
memory: 3804kb

input:

957601483897

output:

974189 982973 

result:

ok single line: '974189 982973 '

Test #21:

score: 0
Accepted
time: 0ms
memory: 3544kb

input:

977141658538805467

output:

245593 3978703214419 

result:

ok single line: '245593 3978703214419 '

Test #22:

score: 0
Accepted
time: 2ms
memory: 3516kb

input:

993640296811069513

output:

15772423 62998582831 

result:

ok single line: '15772423 62998582831 '

Test #23:

score: 0
Accepted
time: 3ms
memory: 3776kb

input:

972033526800786343

output:

22838183 42561771521 

result:

ok single line: '22838183 42561771521 '

Test #24:

score: 0
Accepted
time: 2ms
memory: 3592kb

input:

954171962745034819

output:

35159623 27138287653 

result:

ok single line: '35159623 27138287653 '

Test #25:

score: 0
Accepted
time: 3ms
memory: 3588kb

input:

978341504612724647

output:

52896463 18495404969 

result:

ok single line: '52896463 18495404969 '

Test #26:

score: 0
Accepted
time: 5ms
memory: 3808kb

input:

964156325695679951

output:

82257599 11721182449 

result:

ok single line: '82257599 11721182449 '

Test #27:

score: 0
Accepted
time: 3ms
memory: 3604kb

input:

981810768141725077

output:

120632453 8138861009 

result:

ok single line: '120632453 8138861009 '

Test #28:

score: 0
Accepted
time: 0ms
memory: 3492kb

input:

996600025433706263

output:

188473367 5287749889 

result:

ok single line: '188473367 5287749889 '

Test #29:

score: 0
Accepted
time: 8ms
memory: 3572kb

input:

953178770133147331

output:

434148317 2195514143 

result:

ok single line: '434148317 2195514143 '

Test #30:

score: 0
Accepted
time: 6ms
memory: 3596kb

input:

979704186959920183

output:

965382697 1014835039 

result:

ok single line: '965382697 1014835039 '

Test #31:

score: 0
Accepted
time: 1ms
memory: 3520kb

input:

9681177706327259719477027

output:

30892241 313385413066253747 

result:

ok single line: '30892241 313385413066253747 '

Test #32:

score: 0
Accepted
time: 46ms
memory: 3520kb

input:

9940536208068119834895493

output:

9801019853 1014234881385881 

result:

ok single line: '9801019853 1014234881385881 '

Test #33:

score: 0
Accepted
time: 107ms
memory: 3552kb

input:

9997038881982298860346319

output:

17471050273 572205947883503 

result:

ok single line: '17471050273 572205947883503 '

Test #34:

score: 0
Accepted
time: 106ms
memory: 3812kb

input:

9756859113937123210682929

output:

30453215099 320388473999171 

result:

ok single line: '30453215099 320388473999171 '

Test #35:

score: 0
Accepted
time: 47ms
memory: 3520kb

input:

9990078255400923282753323

output:

54825911561 182214540004243 

result:

ok single line: '54825911561 182214540004243 '

Test #36:

score: 0
Accepted
time: 33ms
memory: 3548kb

input:

9883626478214751636971843

output:

99236894717 99596289327679 

result:

ok single line: '99236894717 99596289327679 '

Test #37:

score: 0
Accepted
time: 230ms
memory: 3588kb

input:

9573361345198621696137959

output:

174744513737 54784903631407 

result:

ok single line: '174744513737 54784903631407 '

Test #38:

score: 0
Accepted
time: 61ms
memory: 3480kb

input:

9625069927040072137408201

output:

315510198349 30506367075949 

result:

ok single line: '315510198349 30506367075949 '

Test #39:

score: 0
Accepted
time: 300ms
memory: 3548kb

input:

9558955213557944940797347

output:

961448896637 9942239516831 

result:

ok single line: '961448896637 9942239516831 '

Test #40:

score: 0
Accepted
time: 146ms
memory: 3600kb

input:

9840941836621191397321379

output:

3053341569527 3223007191477 

result:

ok single line: '3053341569527 3223007191477 '

Test #41:

score: 0
Accepted
time: 18ms
memory: 3484kb

input:

961656201462920497194293996611

output:

973825889 987503220365627902499 

result:

ok single line: '973825889 987503220365627902499 '

Test #42:

score: 0
Accepted
time: 211ms
memory: 3588kb

input:

996526819694097128105196470881

output:

994411349447 1002127359314908823 

result:

ok single line: '994411349447 1002127359314908823 '

Test #43:

score: 0
Accepted
time: 280ms
memory: 3548kb

input:

984638359916649895753226868473

output:

1913886315953 514470661976784841 

result:

ok single line: '1913886315953 514470661976784841 '

Test #44:

score: 0
Accepted
time: 434ms
memory: 3812kb

input:

954594052218344282851704873817

output:

3979498549097 239877974684763761 

result:

ok single line: '3979498549097 239877974684763761 '

Test #45:

score: 0
Accepted
time: 2563ms
memory: 3780kb

input:

951130323482838313925006521277

output:

7557378146273 125854536464064349 

result:

ok single line: '7557378146273 125854536464064349 '

Test #46:

score: 0
Accepted
time: 1247ms
memory: 3584kb

input:

962697697567853678189739826037

output:

15100422367399 63753031150060163 

result:

ok single line: '15100422367399 63753031150060163 '

Test #47:

score: 0
Accepted
time: 2081ms
memory: 3524kb

input:

956492846963172046572961978627

output:

30582959699219 31275352561367633 

result:

ok single line: '30582959699219 31275352561367633 '

Test #48:

score: 0
Accepted
time: 4788ms
memory: 3592kb

input:

990250331253981534128026179673

output:

61400770095961 16127653280347393 

result:

ok single line: '61400770095961 16127653280347393 '

Test #49:

score: 0
Accepted
time: 3269ms
memory: 3780kb

input:

963782379204510691122291047909

output:

244564652505673 3940808163935933 

result:

ok single line: '244564652505673 3940808163935933 '

Test #50:

score: 0
Accepted
time: 3200ms
memory: 3524kb

input:

955342769363561101863533963531

output:

973806882626147 981039245468473 

result:

ok single line: '973806882626147 981039245468473 '