2025-03-18 20:00:56 +08:00

48 lines
1.2 KiB
C

#include <stdio.h>
#define bool int
#define true 1
#define false 0
#define N 10005
#define for_i(i, range, inner) \
{ \
int i; \
for (i = 0; i < range; i++) \
inner; \
}
bool not_prime[N];
void pre(int n) {
int prime[N], prime_length = 0;
int i;
for (i = 2; i <= n; ++i) {
if (!not_prime[i]) {
prime[prime_length++] = i;
}
for_i(j, prime_length, {
int pri_j = prime[j];
if (i * pri_j > n)
break;
not_prime[i * pri_j] = true;
if (i % pri_j == 0) {
break;
}
})
}
}
int main() {
int n;
scanf("%d", &n);
pre(n);
{
int i = 2;
while (true) {
if (!not_prime[i] && !not_prime[n - i]) {
printf("%d=%d+%d", n, i, n - i);
return 0;
}
i++;
}
}
return 0;
}