先看看哥德巴赫猜想是什么
这里“证明”的是“强哥德巴赫猜想”的“1+1”
我写了一个“验证”的算法,但是还有改进的空间,特来寻求广大网友帮助完善算法。
以下是我的代码。
#include <stdio.h>
//判断一个数是不是素数
int Prime_Number(int i)
{
int j,flag = 1;
for (j = 2; j <= sqrt(i) + 1; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 0)
{
return 0;
}
else
{
return i;
}
}
//哥德巴赫猜想
void Q28(void)
{
int n, pm1, pm2, i, j;
scanf("%d", &n);//打印出不大于n的所有偶数的分解形式
for (i = 4; i <= n; i += 2)
{
for (j = 3; j <= i; j += 2)
{
pm1 = Prime_Number(j);
if (pm1 != 0)
{
pm2 = i - pm1;
if (Prime_Number(pm2) != 0)
{
printf("%d+%d=%d\n", pm1, pm2, i);
break;
}
}
}
}
}
int main(void)
{
Q28();
return 0;
}
目前学到函数,希望各路大佬能够给出改进的算法,感谢各位。