#include <stdio.h>
#include <stdlib.h>
//定义一个质数的结构体
struct primeS
{
int pr[5000];
} x;
//声明一个返回质数的结构体的函数
struct primeS prime(void);
//声明哥德巴赫猜想的函数
void gdbh(void);
int main(int argc, char *argv[])
{
prime();
//printf("%d\n", y.pr[5]);
gdbh();
system("PAUSE");
return 0;
}
//得到一个10000以内的质数结构体
struct primeS prime(void)
{
int k = 0;
int i;
for(i = 2; i <= 10000; i++)
{
int j;
int bool = 1;
for(j = 2; j <= i / 2; j++)
{
if(i % j == 0)
{
bool = 0;
break;
}
}
if(bool == 1)
{
x.pr[k++] = i;
//printf("%d\t",i);
}
}
return x;
}
void gdbh(void)
{
//遍历4-100的偶数,看是否能表示成两个质数之和
int i = 4;
for(i; i <= 100; i += 2)
{
int j = 0;
int c = 0; //c=0代表不能被两个质数表示
for(x.pr[j]; x.pr[j] < i; j++)
{
int k = 0;
for(x.pr[k]; x.pr[k] < i; k++)
{
if(i == x.pr[j] + x.pr[k])
{
c = 1;
printf("%d=%d+%d\n", i, x.pr[j], x.pr[k]);
break;
}
}
if(c == 1)
{
break;
}
}
}
}