本机可以出结果,上交却提示指针越界

#include<stdio.h>
#include<math.h>
int main()
{
int m,n,i,j,a[10000],x=0,k=0,b[1000],v=0,c[100],h=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++){
for(x=2;x<=sqrt(i);x++){
if(i%x==0)
break;
}
if(x>sqrt(i)){
a[v]=i;
v=v+1;
}
}
for(i=m;i<n;i++){
if(i<100){
if(i/10==i%10){
b[k]=i;
k++;
}
}
else if(i<1000 && i>=100)
{if(i/100==i%10){
b[k]=i;
k++;
}
}
}
for(i=0;i<1000;i++){
for(j=0;j<100;j++){
if(a[i]==b[j]){
c[h]=b[j];
h=h+1;
}
}
}
for(v=0;v<16;v++) {

if(v!=0  && (v+1)%5==0){
    printf("%6d\n",c[v]);
}
else{
    printf("%6d",c[v]);
}

}

return 0;
}

求的是回文素数