C语言----哥德巴赫猜想

哥德巴赫猜想

实例说明:

        验证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()函数来判断即可。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值