您的位置:首页 > 其它

GYM 101149 C.Mathematical Field of Experiments(水~)

2017-03-19 09:32 337 查看
Description

给出一个素数 p,问0~p-1模p的二次剩余

Input

一个素数p(2<=p<=1e6)

Output

输出p个数分别表示0~p-1模p的二次剩余,如果不是p的二次剩余则输出-1

Sample Input

5

Sample Output

0 4 -1 -1 3

Solution

i是i*i%p模p的二次剩余,枚举i即可

Code

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<ctime>
using namespace std;
typedef long long ll;
#define INF 0x3f3f3f3f
#define maxn 1111111
int p,a[maxn];
int main()
{
while(~scanf("%d",&p))
{
memset(a,-1,sizeof(a));
for(int i=0;i<p;i++)a[1ll*i*i%p]=i;
for(int i=0;i<p;i++)printf("%d%c",a[i],i==p-1?'\n':' ');
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: