鱼C论坛

 找回密码
 立即注册
查看: 2018|回复: 2

C语言的作业

[复制链接]
发表于 2021-4-4 16:28:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
是作业,不太明白
题目:编写一个程序,验证德巴赫猜想,任意一个大于6的偶数均可以表示为两个素数之和。要求:
a)输出6~20之间的偶数表示成素数之和的表达式。
b)每行输出5个表达式,每个式子之间间隔一个Tab位置,(用\t实现),且上下两行的式子要对齐。
c)统计并输出6~20之间的偶数可表示成素数之和的表达式形式个数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-4 18:15:43 | 显示全部楼层
给你个思路吧,假设输入的数为X
从2开始,每个素数被X减,然后计算结果是否是素数  如果是就打印
如果不要求空间复杂度,可以先计算所有比X小的素数,然后存到数组里,然后for循环就完事
要求空间复杂度,那就没计算一个素数就计算(X-素数)是不是素数,是就打印
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-4 18:36:27 | 显示全部楼层
本帖最后由 yuxijian2020 于 2021-4-4 18:38 编辑
#include <stdio.h>

#define bool        int
#define true        1
#define false        0

//计算素数
bool PrimeNumber(unsigned int n)
{
        for (int i = n - 1; i > 1; i--)
        {
                if (n % i == 0)
                        return false;
        }

        return true;
}
//哥德巴赫猜想计算
void Goldbach(unsigned int n)
{
        int index = 0;                                                //用于每行显示5条结果
        for (int i = n - 1; i > 1; i--)
        {
                if (!PrimeNumber(i) || !PrimeNumber(n - i))                        //如果i不是素数,或者n - i不是素数,就直接跳过
                        continue;

                printf_s("%3d + %3d = %3d", i, n - i, n);
                index++;

                if (index % 5 != 0)
                        printf_s("\t");
                else
                {
                        printf_s("\n");
                }
        }
}

void GetInputAndPrint()
{
        int X = 0;
        
        while (X <= 6)                                                        //如果输入的数小于等于6就重新输入
        {
                printf_s("请输入一个大于6的数:\n");
                scanf_s("%d", &X);

                if (X <= 6)
                        printf_s("输入错误!请确保输入的数大于6!\n");
        }

        Goldbach(X);
}

int main()
{
        GetInputAndPrint();
}
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-16 11:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表