1014 X^2 Mod P(数论 枚举)(2级算法题)

时间:2022-02-01 11:26:28

1014 X^2 Mod P1014 X^2 Mod P(数论 枚举)(2级算法题)(数论 枚举)(2级算法题

基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题   X*X mod P = A,其中P为质数。给出P和A,求<=P的所有X。 Input
两个数P A,中间用空格隔开。(1 <= A < P <= 1000000, P为质数)
Output
输出符合条件的X,且0 <= X <= P,如果有多个,按照升序排列,中间用空格隔开。
如果没有符合条件的X,输出:No Solution
Input示例
13 3
Output示例
4 9
思路:x范围比较小 计算起来不复杂 直接枚举判断就好
#include <cstdio>

#define LL long long

bool quickmod(LL x , LL y , LL A){
if(x*x%y==A)
return true ;
return false ;
}

int main(){
LL p , a ;
while(~scanf("%lld%lld" , &p , &a)){
int times = 0 ;
int number = 0 ;
for(int i=0 ; i<=p ; i++){
if(quickmod(i,p,a)){
number
++ ;
if(times == 0 ){
printf(
"%lld" , i ) ;
times
++ ;
}
else {
printf(
" %lld" , i) ;
}

}
}
if(number == 0 ){
printf(
"No Solution\n") ;
}
}
return 0 ;
}