我写了这么一个函数:
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; }
论为什么当参数为40042时会玄学停止运行? 小于这个数的所有正偶数都没有问题