/************
哥德巴求赫猜想:任一充分大的偶数,可以用两个素数之和表示。
*************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
int i, j, num;
int p, q, flagp,flagq;
printf("Please input a plus integer:");
scanf("%d", &num);
if(((num%2) != 0) || (num <= 4)) //這裡說明我們的數據一定要是偶數,並大於4.
printf("Input data error!\n");
else
{
p = 1;
do{
p = p + 1;
q = num -p;
flagp = 1;
flagq = 1;
for(i = 2; i <= (int)(floor(sqrt((double)(p)))); i++)
{
if((p % i) == 0)
{
flagp = 0;
break;
}
}
j = 2;
while(j <= (int)(floor(sqrt((double)(q)))))
{
if((q%j) == 0)
{
flagq = 0;
break;
}
j++;
}
}
while(flagp*flagq == 0);
printf("%d = %d + %d \n", num, p ,q);
}
system("pause");
return 0;
}
|