源码如下:
/* By @Joker_1212 */
#include <bits/stdc++.h>
#define ull unsigned long long
#define ll long long
#define maxn 20000
using namespace std;
int is_primer[maxn + 5], primer[maxn / 10 * 8 + 5], cnt = 0;
void pre()
{
for (int i = 0; i <= maxn; ++i)
is_primer[i] = 1;
is_primer[0] = is_primer[1] = 0;
for (int i = 2; i <= maxn; ++i)
{
if (is_primer[i])
primer[cnt++] = i;
for (int j = 0; j < cnt && i * primer[j] <= maxn; ++j)
{
is_primer[i * primer[j]] = 0;
if (i % primer[j] == 0)
break;
}
}
}
int main()
{
#ifdef LOCAL
freopen("./in.in", "rb", stdin);
#endif
pre();
int n;
scanf("%d", &n);
for (int i = 0; i < cnt; ++i)
for (int j = i; j < cnt; ++j)
if (is_primer[n - primer[i] - primer[j]] && (n - primer[i] - primer[j]) >= primer[j])
return printf("%d %d %d", primer[i], primer[j], n - primer[i] - primer[j]) & 0;
}
结果5个点 RE,错误信息都是 Segmentation fault with invaild memory reference,求调