
For 543 (I guess that's what you mean) I don't think it's important if you have the same prime listed twice.
Moderator: Board moderators
Code: Select all
//deleted
Code: Select all
#include <stdio.h>
#define MAX 65536
#define TRUE 1
#define FALSE 0
void main(void)
{
char prime[MAX];
int i, j;
int half_value;
int sum;
int cnt;
prime[0] = FALSE;
prime[1] = FALSE;
for ( i = 2 ; i < MAX ; i++ )
{
if ( prime[i] == FALSE )
continue;
j = i + i;
while ( j < MAX )
{
prime[j] = FALSE;
j += i;
}
}
while ( 1 )
{
scanf("%d", &sum);
if ( sum == 0 )
break;
cnt = 0;
half_value = sum / 2;
for ( i = 2 ; i <= half_value ; i++ )
if ( prime[i] && prime[sum-i])
cnt++;
printf("%d\n", cnt);
}
}
Code: Select all
for(i=0;i<MAX;i++)prime[i]=TRUE;
Code: Select all
prime[0] = FALSE;
prime[1] = FALSE;
Code: Select all
4
6
12
10
14
16
100
1000
1002
10000
22292
32306
32502
32760
32766
0
Code: Select all
1
1
1
2
2
2
6
28
36
127
177
251
491
857
518