48 lines
1.2 KiB
C
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;
|
|
} |