#include<stdio.h>
#include<math.h>
int a[20000],N;
void fill(void) {
int i, j, k, s, f;
a[0] = 2;
for (i = 3,k=1; i < 20000; i+=2) {
s = pow(i, 0.5);
f = 0;
for (j = 3; j <= s; j += 2)
if (i % j == 0)
f=1;
if (f == 0) {
a[k] = i;
k++;
}
}
}
int sudoprint(int n) {
int i, j;
for (i = 0; a[i] < n; i++)
for (j = 0; a[j] < n; j++)
if (a[i] + a[j] == n) {
printf("%d=%d+%d\n", n, a[i], a[j]);
return(0);
}
}
int main(){
int i;
scanf("%d", &N);
fill();
for (i = 4; i <= N; i += 2)
sudoprint(i);
return(0);
}
洛谷P1304 哥德巴赫猜想经典解法
最新推荐文章于 2024-07-03 09:49:31 发布