Submission #62137707
Source Code Expand
/*
特辣的海藻!!!!!
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define ull unsigned long long
int MOD;
inline ull qsc(ll a,ll b){
ll z=(long double)a/MOD*b;
ll res=(ull)a*b-(ull)z*MOD;
return (res+MOD)%MOD;
}
inline int qp(int p,int q){
int ans = 1,pro = p;
while(q){
if(q&1)ans = qsc(ans,pro);//(__int128)ans*pro%mod;
//pro = (__int128)pro*pro%mod;
pro = qsc(pro,pro);
q>>=1;
}
return ans;
}
vector<int>p;
int n;
int phi;
unordered_map<int,pair<int,int> >mp;
void fenjie(int x,vector<int>& p){
for(int i = 2;i*i<=x;i++)while(x%i == 0)p.push_back(i),x/=i;
if(x>1)p.push_back(x);
}
int calc(int x){
int pro = 1;
for(int i = 2;i*i<=x;i++){
if(x%i==0){
int cc =0 ;
while(x%i == 0)x/=i,cc++;
pro = pro*(i-1);fenjie(i-1,p);
for(int j = 1;j<2*cc;j++)pro = pro*i,fenjie(i,p);
}
}
if(x>1){
pro = pro*x*(x-1);
fenjie(x,p),fenjie(x-1,p);
}
return pro;
}
int Calc(int X){
int pro = phi;
for(auto x:p)if(qp(X,pro/x)==1)pro/=x;
// assert(qp(X,pro,MOD)==1);
return pro;
}
void solve(){
cin >> n;
if(mp.count(n)){
auto e = mp[n];
cout<<e.first<<" "<<e.second <<endl;
return;
}
if(n==1){cout << 1 << " " << 2 << '\n';return;}
p.clear();
phi = calc(n);
int tt = 0,now = 1;
MOD = n*n;
while(1){
++now;
if(__gcd(now,n)!=1)continue;
++tt;
int vv = Calc(now);
if(vv%n == 0){
int res = qp(now,vv/n);
cout << res << " " << MOD << '\n';
mp[n] = {res,MOD};
return;
}
}
}
signed main(){
srand(time(0));
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t=10000;cin >> t;
while(t--){
solve();
}
}/*
4
3
16
1
55
*/
Submission Info
| Submission Time |
|
| Task |
C - A^n - 1 |
| User |
juan_123 |
| Language |
C++ 20 (gcc 12.2) |
| Score |
600 |
| Code Size |
1741 Byte |
| Status |
AC |
| Exec Time |
1977 ms |
| Memory |
4296 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
600 / 600 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_00.txt |
| All |
00_sample_00.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 02_large_00.txt, 02_large_01.txt, 02_large_02.txt, 02_large_03.txt, 02_large_04.txt, 03_divisior_00.txt, 03_divisior_01.txt, 04_kN_1_00.txt, 04_kN_1_01.txt, 04_kN_1_02.txt, 05_prime_00.txt, 05_prime_01.txt, 05_prime_02.txt, 05_prime_03.txt, 05_prime_04.txt, 05_prime_05.txt, 06_random_00.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_00.txt |
AC |
1 ms |
3740 KiB |
| 01_small_00.txt |
AC |
38 ms |
4176 KiB |
| 01_small_01.txt |
AC |
49 ms |
4176 KiB |
| 01_small_02.txt |
AC |
53 ms |
4292 KiB |
| 01_small_03.txt |
AC |
2 ms |
3628 KiB |
| 02_large_00.txt |
AC |
433 ms |
4144 KiB |
| 02_large_01.txt |
AC |
432 ms |
4228 KiB |
| 02_large_02.txt |
AC |
441 ms |
4208 KiB |
| 02_large_03.txt |
AC |
12 ms |
3612 KiB |
| 02_large_04.txt |
AC |
13 ms |
3524 KiB |
| 03_divisior_00.txt |
AC |
15 ms |
3692 KiB |
| 03_divisior_01.txt |
AC |
171 ms |
3980 KiB |
| 04_kN_1_00.txt |
AC |
660 ms |
4212 KiB |
| 04_kN_1_01.txt |
AC |
50 ms |
3588 KiB |
| 04_kN_1_02.txt |
AC |
12 ms |
3680 KiB |
| 05_prime_00.txt |
AC |
45 ms |
4296 KiB |
| 05_prime_01.txt |
AC |
63 ms |
4160 KiB |
| 05_prime_02.txt |
AC |
63 ms |
4288 KiB |
| 05_prime_03.txt |
AC |
1977 ms |
4164 KiB |
| 05_prime_04.txt |
AC |
344 ms |
4148 KiB |
| 05_prime_05.txt |
AC |
343 ms |
4108 KiB |
| 06_random_00.txt |
AC |
331 ms |
4112 KiB |