栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言:编写程序验证哥德巴赫猜想第二部分

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言:编写程序验证哥德巴赫猜想第二部分

一,题目要求

 

编写程序验证哥德巴赫猜想第二部分,每个大于等于9的奇数都可表示为3个奇素数之和。将大于等于9的奇数分解为三个奇素数之和写成一个函数,从键盘输入任一大于等于9的奇数,调用该函数,在函数中输出这三个奇素数,例如输入9,输出9=3+3+3。

二,函数部分

1.判断素数

函数参数:整形。

函数作用:判断是否为素数。

返回值:返回类型为整形。如果是素数,返回1;否则返回0。

int Pri(int n)
{
    for (int i = 2; i < sqrt(n); i++)
    {
        if (n % i == 0)
            return 0;
    }
    return 1;
}

2.验证哥德巴赫猜想

由题意,每个大于等于9的奇数都可表示为3个奇素数之和。故只需判断大于等于3的奇数是否为素数。因为三个数相加时,一定有其中一个数小于等于和的1/3,一个数大于等于和的1/3.

函数功能:打印出哥德巴赫猜想,例如:9=3+3+3。

函数参数::整形。

返回类型:void。

void Gol(int n)
{
    for (int i = 3; i <= n/3; i += 2)
    {
        for (int j = n/3; j <=n; j += 2)
        {
            if (j % 2 == 0)
                j++;
            int k = n - i - j;
            if(Pri(i) && Pri(j) && Pri(k)&&j>=k&&k>=i)
            {
                printf("%d=%d+%d+%dn", n, i, j, k);
            }
        }
    }
}

循环部分:

i从第一个奇素数3开始,小于等于和的1/3;

j从和的1/3开始,因为要判断奇数,若j为偶数则加1;

k等于三数之和减i,再减j;

判断部分:

若Pri(i) , Pri(j) , Pri(j) 均为素数,则打印n=i+j+k。

打印一下结果

可以看到,当输入值n=17时,出现了两次5+5+7,为了避免重复,在判断时可以加上条件j>=k和k>=i。

再次打印,就没有重复的结果了。

 

主函数:

输入一个奇数n,调用 Gol()函数。

int main()
{
    int n;
    scanf("%d", &n);
    Gol(n);
    return 0;
}

头文件:

stdio.h和math.h

三,完整代码
#include
#include
int Pri(int n)
{
    if (n >1)
    {
        for (int i = 2; i <= sqrt(n); i++)
        {
            if (n % i == 0)
                return 0;
        }
        return 1;
    }
    else
        return 0;
}
void Gol(int n)
{
    for (int i = 3; i <= n/3; i += 2)
    {
        for (int j = n/3; j <=n; j += 2)
        {
            if (j % 2 == 0)
                j++;
            int k = n - i - j;
            if(Pri(i) && Pri(j) && Pri(k)&&j>=k&&k>=i)
            {
                printf("%d=%d+%d+%dn", n, i, j, k);
            }
        }
    }
}
int main()
{
    int n;
    scanf("%d", &n);
    Gol(n);
    return 0;
}

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928308.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号