分解质因数代码。为什么说这段代码数组越界了,什么是数组越界啊,怎么改正捏
int s, s0, i, m = 1;
int a[25] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
scanf("%d", &s);
s0 = s;
printf("%d=", s0);
for (i = 0; a[i] <= s0; i++) {
for (; s % a[i] == 0;) {
s = s / a[i];
printf("%d", a[i]);
if (s / a[i] > 0)
printf("*");
}
}