cnt=-1; for(int i=1;i<=ceil(1.0*a/2);i++)//i<=a会超时,不知道为什么 { if(a%i==0)cnt++;//任何正整数都是1的倍数,所以一定会执行一次cnt++,质数只会执行一次cnt++ } if(cnt==0) { b[cnt1]=a;//cnt1初始值为0 to+=a; cnt1++; }