问题在a数组的大小上,这个数组的功能是存放10000以内所有的质数,质数的数量不超过1千5,开3000的大小绰绰有余。
但3千的大小却有两个RE,当数组开到8千时有一个WA,开到1万1的时候全AC掉。
麻烦有了解的朋友解惑一下,万分感谢。
#include <bits/stdc++.h>
using namespace std;
int main(){
int a[11000];
a[0] = 2;
int c = 1;
int bj;
for(int i = 3; i <= 10000; i+=2){
bj = 1;
for(int j = 0; j < c; j++){
if(i % a[j] == 0){
bj = 0;
break;
}
}
if(bj == 1){
a[c] = i;
c++;
}
}
int n;
cin >> n;
for(int i = 4; i <= n; i+=2){
for(int j = 0, k = 0; j < i; ){
if(a[j] + a[k] == i){
cout << i << "=" << a[j] << "+" << a[k] << endl;
break;
}else{
k++;
if(k == i){
k = 0;
j++;
}
}
}
}
return 0;
}