为什么这个代码运行后会停止工作?我也没写递归啊,数组好像也不会越界啊???
#include<iostream>
using namespace std;
int y(int a){
int s=1,k[10001]={},t=1;
while(a%2==0){
a/=2;k[t]++;
}
t++;
for(int i = 3;i<=a;i+=2){
while(a&&a%i==0){
a/=i;
k[t]++;
}
t++;
}
for(int i = 1;i<=t;i++){
s*=k[i]+1;
}
return s;
}
int main(){
int a[10001][2]={},t=1,kk;
for(long long i = 2;i<=1e7;i+=2){
kk=y(i);
if(kk>a[t-1][1]){
a[t][0] = i;
a[t][1] = kk;
t++;
}
}
for(int i = 1;a[i][0]!=0;i++){
cout << a[i][0] << ',';
}
return 0;
}