哥德巴赫猜想
实例说明:
验证100以内的正偶数都能够分解为两个素数之和,即验证哥德巴赫猜想对100以内(大于2)的正偶数成立。
实现过程:
- 使用编译器创建一个C文件
- 引用头文件,代码如下:#include <stdio.h>
- 自定义函数ss(),函数类型为基本类型,作用是判断一个数是否为素数。代码如下:
int ss(int i){
int j;
if (i <= 1)
return 0;
if (i == 2)
return 1;
for (j = 2; j < i; j++)
{
if (i % j == 0)
return 0;
else if(i != j+1)
continue;
else
return 1;
}
}
- 对4~100之间的正偶数进行拆分,在对拆分出来的数分别调用 ss()函数进行是否为素数的判断,若均为素数,则按指定格式输出,否则继续下次循环,重新进行拆分及判断。
全部代码展示:
#include <stdio.h>
//自定义函数判断是否为素数
int ss(int i){
int j;
if (i <= 1) //小于1的数不是素数
return 0;
if (i == 2) //2是素数
return 1;
for (j = 2; j < i; j++) //对大于2的数进行判断
{
if (i % j == 0)
return 0;
else if(i != j+1)
continue;
else
return 1;
}
}
void main()
{
int i,j,k,flag1,flag2,n=0;
for ( i = 4; i < 100; i += 2)
for ( k = 2; k <= i/2; k++)
{
j = i - k;
flag1 = ss(k); //判断拆分出的数是否为素数
if (flag1)
{
flag2 = ss(j);
if (flag2) //如果拆分出的两个数均是素数则输出
{
printf("%3d=%3d+%3d,",i,j,k);
n++;
if (n % 5 == 0)
printf("\n");
}
}
}
printf("\n");
}
实现结果展示:
技术要点:
为了验证歌德马赫猜想对100以内(大于2)的正偶数是成立的,要将正偶数分解为两部分,在对两部分进行判断,如果均是素数则满足题意,不是则重新分解继续判断。本实例把素数的判断过程定义到ss()函数中,对每次分解出的两个数只要调用ss()函数来判断即可。