洛谷的P1304哥德巴赫猜想TLE了,不知道怎么优化
题目:
代码:
#include <iostream>
using namespace std;
bool isprime(int n){
if (n<=1)return false;
for (int i=2;i*i<=n;i++){
if (n%i==0)return false;
}
return true;
}
int main(){
int n;
cin>>n;
bool done[10000]={};
for (int l=4;l<=n;l++){
for (int i=2;i<=n;i++){
for (int j=2;j<=n;j++){
if (isprime(i)&&isprime(j)){
if (i+j==l&&i<=j&&l%2==0&&done[l]==0){
cout<<l<<"="<<i<<"+"<<j<<endl;
done[l]=true;
}
}
}
}
}
}
我用一个数组done来记录已经求出的 l
然后定义了一个isprime函数来求是否是素数
Time Limit Exeeded,50分
怎么优化?