当输入大于8008(不要问我数怎么来的)时第一行的输出变成了4=3+1???
下面是代码,求助大佬QAQ
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int n,m,tmp,Prime[1000];
bool isPrime[10005];
int main() {
cin>>n;
memset(isPrime,1,sizeof(isPrime));
isPrime[1]=0;
for(int i=2; i<=n; i++) {
if(isPrime[i])Prime[++m]=i;
for(int j=1; j<=m&&n>=(tmp=i*Prime[j]); j++) {
isPrime[tmp]=0;
if(i%Prime[j]==0)break;
}
}
for(int i=4; i<=n; i+=2) {
for(int j=1; j<=m; j++) {
if(isPrime[tmp=i-Prime[j]]) {
printf("%d=%d+%d\n",i,Prime[j],tmp);
break;
}
}
}
return 0;
}