#include<stdio.h>
#include<math.h>
int hash[100010]={0};
bool judge(int a){//是素数则返回true
if(a<=1)return false;
int i, sqr=sqrt(a*1.0);
for(i=2;i<=sqr;i++)
if(a%i==0)return false;
return true;
}
int main(){
int i, j=0, m, n, pos, tsize, temp, count=0;
scanf("%d%d",&m,&n);
for(i=m;i<=100010;i++){ if(judge(i)){tsize=i;break;} }
for(i=0;i<n;i++){
scanf("%d",&temp);
pos=temp%tsize;
if(hash[pos]==0){
hash[pos]=1;
if(i==0)printf("%d",pos);
else printf(" %d",pos);
}
else {
for(j=1;j<tsize;j++){
pos=(temp+j*j)%tsize;
if(hash[pos]==0){
hash[pos]=1;
if(i==0)printf("%d",pos);
else printf(" %d",pos);
break;
}
}
if( j>=tsize){
if(i>0)printf(" ");
printf("-");
}
}
}
return 0;
}
PAT-A1078
最新推荐文章于 2021-03-07 11:28:48 发布