请问为什么会出现以下的报错?
行 列
9 24 [警告] iteration 5003 invokes undefined behavior [-Waggressive-loop-optimizations]
8 22 [说明] within this loop
代码如下(写得很丑):
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=5e3+5;
int n,x=1,y=1,r,c,dx,dy,d,cnt,w[4][2]={0,1,1,0,0,-1,-1,0},p[N],f[N],a[N][N];
void work(){
for(int i=2;i<=N;i++){
if(!f[i])p[++cnt]=i;
for(int j=1;i*p[j]<=N;j++){
f[i*p[j]]=1;
if(i%p[j]==0)break;
}
}
for(int i=1;i<=n*n;i++){
a[x][y]=p[i];
dx=x+w[d][0],dy=y+w[d][1];
if(dx<1||dx>n||dy<1||dy>n||a[dx][dy])d=(d+1)%4;
x+=w[d][0],y+=w[d][1];
}
}
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>r>>c;
work();
cout<<a[r][c];
return 0;
}