建议把函数开成bool
by Rieman_sum @ 2023-07-28 21:17:08
然后从4开始
by Rieman_sum @ 2023-07-28 21:17:34
那3 5 7 11 13 也都是素数啊
by chenqile @ 2023-07-28 21:28:19
@[chenqile](/user/953664)
1.蒟蒻实在是没有找到你的输入在哪。
2.你的输出换行没了。
3.你用printf输出时,定义了三个变量,却只提供了两个。输出可参考以下代码。
```c
cout<<i<<"="<<a[j]<<"+"<<i-a[j]<<endl;
```
有问题还可以再问我
by gf20220934 @ 2023-07-29 08:15:22
@[gf20220934](/user/794027)
1.样例输出从 4=…… 开始,你的代码从 2=…… 开始,建议将
```c
for (int i = 2; i <= n; i += 2)
```
改为
```c
for (int i = 4; i <= n; i += 2)
```
2.你的代码将1筛为素数,建议调一下,将
```c
for (int i = 1; i < 1001; i++)
```
改为
```c
for (int i = 2; i < 1001; i++)
```
3.建议将
```c
for (int j = 0; j <= 500; j++)
```
改为
```c
for (int j = 0; j <= top; j++)
```
代码会跑的快一些
有问题可以问我
by gf20220934 @ 2023-07-29 08:28:10
代码简单易懂,而且时间上也是没问题的,可以参考和借鉴
[AC记录](https://www.luogu.com.cn/record/120226102)
by Y_QWQ_Y @ 2023-08-11 12:29:16
代码
```cpp
#include<bits/stdc++.h>
using namespace std;
int n;
bool pd (int a)判断质数
{
for (int i = 2; i * i <= a; i++)
{
if (a % i == 0)
{
return 0;
}
}
return 1;
}
void cf(int a)
{
int l = 2 , r = a - 2;利用l和r拆分
while (l < r)
{
if (pd (l) && pd (r))
{
printf ("%d=%d+%d\n" , a , l , r);
return ;
}
l++;
r--;
}
}
int main()
{
scanf ("%d" , &n);
for (int i = 2; i * 2 <= n; i++)
{
int j = i * 2;
cf (j);调用函数即可
}
return 0;
}
```
by Y_QWQ_Y @ 2023-08-11 12:30:55
请勿抄袭,谢谢。
by Y_QWQ_Y @ 2023-08-11 12:31:21