QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#121147 | #3278. 算术 | zhouhuanyi | 0 | 1ms | 3444kb | C++11 | 1.3kb | 2023-07-07 17:08:07 | 2023-07-07 17:08:08 |
Judging History
answer
#include<iostream>
#include<cstdio>
#define N 30
using namespace std;
long long read()
{
char c=0;
long long sum=0;
while (c<'0'||c>'9') c=getchar();
while ('0'<=c&&c<='9') sum=sum*10+c-'0',c=getchar();
return sum;
}
int T,length;
long long tong[N+1],b,p,phip;
long long fast_pow(long long a,long long b)
{
long long res=1,mul=a;
while (b)
{
if (b&1) res=(__int128)(res)*mul%p;
mul=(__int128)(mul)*mul%p,b>>=1;
}
return res;
}
long long gcd(long long a,long long b)
{
if (!b) return a;
return gcd(b,a%b);
}
int main()
{
long long x;
T=read(),x=p=phip=read();
for (long long i=2;i*i<=p;++i)
if (x%i==0)
{
phip=phip/i*(i-1);
while (x%i==0) x/=i;
}
if (x!=1) phip=phip/x*(x-1);
x=phip;
for (long long i=2;i*i<=phip;++i)
if (x%i==0)
{
tong[++length]=i;
while (x%i==0) x/=i;
}
if (x!=1) tong[++length]=x;
while (T--)
{
b=read();
if (gcd(p,b)!=1)
{
puts("-1");
continue;
}
x=phip;
for (int i=1;i<=length;++i)
while (x%tong[i]==0&&fast_pow(b,x/tong[i])==1)
x/=tong[i];
if (x&1) puts("-1");
else
{
if (x!=2) printf("%lld\n",(x-2)>>1);
else puts("2");
}
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 5
Accepted
time: 1ms
memory: 3444kb
input:
10 3 10 7 13 4 17 28 29 13 4 30
output:
-1 -1 -1 -1 2 -1 2 -1 -1 -1
result:
ok 10 numbers
Test #2:
score: 0
Accepted
time: 1ms
memory: 3404kb
input:
10 3 17 21 29 8 25 21 8 14 26 7
output:
2 -1 2 2 -1 -1 2 2 2 -1
result:
ok 10 numbers
Test #3:
score: -5
Wrong Answer
time: 0ms
memory: 3372kb
input:
10 2 14 12 20 12 7 4 6 12 16 13
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
wrong answer 5th numbers differ - expected: '1', found: '-1'
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Skipped
Dependency #1:
0%
Subtask #4:
score: 0
Skipped
Dependency #1:
0%
Subtask #5:
score: 0
Skipped
Dependency #1:
0%
Subtask #6:
score: 0
Skipped
Dependency #1:
0%
Subtask #7:
score: 0
Skipped
Dependency #1:
0%
Subtask #8:
score: 0
Skipped
Dependency #1:
0%
Subtask #9:
score: 0
Skipped
Dependency #1:
0%
Subtask #10:
score: 0
Skipped
Dependency #1:
0%