for (int j = 2; j <= n / 2; i++)
死循环?
by 幽云蓝 @ 2020-08-08 08:04:31
@[爵士](/user/246979) 至少应该不会TLE了
by SalomeJLQ @ 2020-08-08 08:13:26
@[jimmyshi29](/user/225837)
by SalomeJLQ @ 2020-08-08 08:13:40
```cpp
#include<bits/stdc++.h>
using namespace std;
bool p[100010];
void getprime(){
memset(p,true,sizeof(p));
p[0]=p[1]=false;
for(int i=2;i<=40000;i++)
if (p[i])
for(int j=2;i*j<=40000;j++){p[i*j]=false;break;}
return;
}
int main(){
getprime();
int n;cin>>n;
for(int i=2;i<=n;i+=2)
for(int j=2;j<=n/2;j++)
for(int k=2;k<=n/2;k++)
if(p[j] && p[k])cout <<i<<'='<<j<<'+'<<k<<endl;
return 0;
}
```
这样就好了
by SalomeJLQ @ 2020-08-08 08:14:15
这回是五个点TLE,五个点WA
```
# include <iostream>
# include <cstring>
using namespace std;
bool p[100010];
void getprime()
{
memset(p, true, sizeof(p));
p[0] = p[1] = false;
for (int i = 2; i <= 40000; i++)
{
if (p[i])
{
for (int j = 2; i * j <= 40000; j++)
{
p[i * j] = false;
break;
}
}
}
return;
}
int main()
{
getprime();
int n;
cin >> n;
for (int i = 2; i <= n; i += 2)
{
for (int j = 2; j <= n / 2; j++)
{
for (int k = 2; k <= n / 2; k++)
{
if (p[j] && p[k])
cout << i << '=' << j << '+' << k << endl;
}
}
}
return 0;
}
```
by jimmyshi29 @ 2020-08-08 09:08:16