您的位置:首页 > 其它

数学趣题——哥德巴赫猜想的近似证明

2010-05-25 09:27 281 查看

一、分析

可在较小范围内使用枚举法,验证每一个偶数是否能表示成为两个素数的和。

二、源码

#include <string.h>
#include <stdio.h>
int IsGoldbach(int a);
int TestifyGB_Guess(int low, int high);
int IsPrime(int i);
int main()
{
 printf("Test 1-100 is Goldbach Guess\n");
 if (TestifyGB_Guess(1, 100))
 printf("in 1-100 guess is right\n");
 else
 printf("guess is wrong\n");
 return 0;
}
int TestifyGB_Guess(int low, int high)
{
 int i, j = 0;
 int flag = 0;
 for (i = low; i <= high; ++i)
{
 if (i % 2 == 0 && i > 2)
{
 if (IsGoldbach(i))
{
 j++;
 if (j == 5)
{
 printf("\n");
 j = 0;
}
}
 else
{
 flag = 1;
 break;
}
}
}
 if (flag == 0)
 return 1;
 else
 return 0;
}
int IsGoldbach(int a)
{
 int i, flag = 0;
 for (i = 1; i <= a / 2; ++i)
{
 if (IsPrime(i) && IsPrime(a - i))
{
 flag = 1;
 printf("%d=%d+%d ", a, i, a-i);
 break;
}
}
 if (flag == 1)
 return 1;
 else
 return 0;
}
int IsPrime(int i)
{
 int n, flag = 1;
 if (1 == i)
 flag = 0;
 for (n=2; n<i; n++)
{
 if (i%n == 0)
{
 flag = 0;
 break;
}
}
 if (flag == 1)
 return 1;
 else
 return 0;
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: