c题目9:证明1000以内的偶数可以写成两个质数之和

news2024/10/5 18:28:28

每日小语

心若没有栖息的地方,在哪都是流浪。——三毛

自己敲写

这里需要用到一个联系:oushu=prime1+prime2

这个问题在于将这个联系变换,用于让我们判断是否是质数,转换后可以方便清晰的理解,并且减掉一个变量。

这是我没有想到的。就如同分部积分一样,通过变换,将一个复杂的东西转换为一个简单的易懂的东西.

prime1=oushu-prime2,就是这么简单,但我想不到,这是老师给出的答案。

#include <stdio.h>

int main() 
{
    int IsPrime=0;
    
    for(int i=4;i<1000;i=i+2)//i是偶数,即和
    {
        for(int prime=2;prime<i;prime++)
        {
            for(int j=2;j<prime;j++)
            {
                if (prime%j!=0&&(i-prime)%j==0)
                {
                    IsPrime=1;
                    break;
                }
            }
        }
    }
    if(IsPrime=0)
    {
        printf("1000以内偶数可以写成两个质数之和");
    }
    else
    {
        printf("no");
    }
    return 0;
}

目前的代码是这样的可是它给我的是no,emmmmm我还是觉得不对

#include <stdio.h>

int main() 
{
    int IsPrime = 0;

    for (int i = 4; i < 1000; i = i + 2) // i是偶数,即和
    {
        IsPrime = 0; // 将IsPrime重置为0

        for (int prime = 2; prime < i; prime++)
        {
            int isPrime1 = 1;
            int isPrime2 = 1;

            for (int j = 2; j < prime; j++)
            {
                if (prime % j == 0)
                {
                    isPrime1 = 0; // prime不是质数
                    break;
                }
            }

            for (int j = 2; j < (i - prime); j++)
            {
                if ((i - prime) % j == 0)
                {
                    isPrime2 = 0; // (i - prime)不是质数
                    break;
                }
            }

            if (isPrime1 == 1 && isPrime2 == 1)
            {
                IsPrime = 1;
                break;
            }
        }

        if (IsPrime == 0)
        {
            printf("%d可以写成两个质数之和\n", i);
        }
    }

    return 0;
}

这个是gpt的代码,得需要和自己的对比分析一下。

就蛮气人的,怎么改都是no。

#include <stdio.h>

int main() 
{
    int IsPrime=1;
    for(int i=4;i<1000;i=i+2)//i是偶数,即和
    {
        //1.将IsPrime重置为0
        IsPrime=1;
        for(int prime=2;prime<i;prime++)
        {   
            for(int j=2;j<prime;j++)
            {
                if (prime%j==0&&(i-prime)%j==0)
                {
                    IsPrime=0;
                    break;
                }
            }
        }
    }
    if(IsPrime=0)
    {
        printf("1000以内偶数可以写成两个质数之和");
    }
    else
    {
        printf("no");
    }
    return 0;
}

基于gpt改了一下,可惜还是不对。

gpt又给了一个

#include <stdio.h>

// 判断一个数是否为质数
int isPrime(int num) {
    if (num <= 1) {
        return 0; // 不是质数
    }
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) {
            return 0; // 不是质数
        }
    }
    return 1; // 是质数
}

int main() {
    printf("证明哥德巴赫猜想:1000以内的偶数可以写成两个质数之和\n");

    for (int evenNum = 4; evenNum <= 1000; evenNum += 2) {
        int found = 0; // 是否找到两个质数之和等于evenNum

        for (int prime1 = 2; prime1 <= evenNum / 2; prime1++) {
            int prime2 = evenNum - prime1;

            if (isPrime(prime1) && isPrime(prime2)) {
                found = 1;
                printf("%d = %d + %d\n", evenNum, prime1, prime2);
                break;
            }
        }

        if (!found) {
            printf("%d 无法写成两个质数之和\n", evenNum);
        }
    }

    return 0;
}

1.这个涉及到了一个提前设定函数的东西,我就不是很懂了。

在C语言中,你可以在程序的任何地方定义函数,包括在`main`函数外面。函数的定义告诉编译器如何执行函数的操作,但并不要求函数的定义必须在`main`函数之前或之后。这使得代码更模块化,可以将不同功能的代码分离开来,提高代码的可读性和维护性。

在你提供的代码中,`isPrime`函数的定义在`main`函数之前。这种组织结构使得程序更清晰,可以先定义所有的辅助函数,然后再定义主函数(`main`函数)。这样做有助于阅读和理解代码,同时也方便查找特定功能的实现。

就有太多个循环的情况下,脑子就不清晰了,之前做过质数题,就不需要再重新做了,就每次直接把它作为一个辅助函数拿来用就可以了。

2.!found:在C语言中,!found 表示逻辑非操作符,它用于对found变量的值取反。具体而言,!found的值在found为真(非零)时为假(0),而在found为假(0)时为真(1)。

这一次大抵多了一个提早设函数的一个知识,其他的也无碍了。

撒花花~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1221940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis怎么保证数据不丢失

目录 一、Redis使用持久化保证数据不丢失 二、Redis 持久化的三种方式 三、混合持久化的流程 一、Redis使用持久化保证数据不丢失 Redis 中的数据是存放在内存中的&#xff0c;这样可以保证 Redis 高效的运行&#xff0c;然而内存中的数据会随着系统的重启而丢失&#xff0c;那…

c# 字符串转换为byte

c# 字符串转换为byte using System.Text; class proj {internal static void Main(string[] args){byte[] anew byte[3];Console.WriteLine("打印a");Console.WriteLine("a的长度{0}",a.Length);foreach (byte b in a){ Console.WriteLine(b); }a Encodi…

LangChain 实现给动物取名字

mkdir langchain-llm-appcd langchain-llm-app # 用vscode 打开当前目录 code .在macOS上通过终端打开Visual Studio Code&#xff08;VS Code&#xff09;&#xff0c;您可以按照以下步骤操作&#xff1a; 安装VS Code&#xff1a;首先&#xff0c;确保您已经在Mac上安装了Vis…

Pytest+Allure生成自动化测试报告!

前言 在自动化测试中&#xff0c;有unittestHTMLTestRunner自动化测试报告&#xff0c;但是生成的测试报告不够美观详细&#xff0c;今天我们来学习一下PytestAllure生成自动化测试报告。 一&#xff1a;安装python中的allure依赖库 在dos窗口中&#xff0c;输入下面三个命令…

邀请报名|11月24日阿里云原生 Serverless 技术实践营 深圳站

活动简介 “阿里云云原生 Serverless 技术实践营 ” 是一场以 Serverless 为主题的开发者活动&#xff0c;活动受众以关注 Serverless 技术的开发者、企业决策人、云原生领域创业者为主&#xff0c;活动形式为演讲、动手实操&#xff0c;让开发者通过一个下午的时间增进对 Ser…

美国服务器:全面剖析其主要优点与潜在缺点

​  服务器是网站搭建的灵魂。信息化的今天&#xff0c;我们仍需要它来为网站和应用程序提供稳定的运行环境。而美国作为全球信息技术靠前的国家之一&#xff0c;其服务器市场备受关注。那么&#xff0c;美国服务器究竟有哪些主要优点和潜在缺点呢? 优点 数据中心基础设施&a…

开源与闭源:大模型时代的技术交融与商业平衡

一、开源和闭源的优劣势比较 1.1 开源 优势&#xff1a; 1.技术共享与吸引人才&#xff1a; 开源促进了技术共享&#xff0c;吸引了全球范围内的人才参与大模型的发展&#xff0c;形成了庞大的开发者社区。 2.推动创新&#xff1a; 开源模式鼓励开发者共同参与&#xff0c;推动…

Android 屏幕适配

目录 一、为什么要适配 二、几个重要的概念 2.1 屏幕尺寸 2.2 屏幕分辨率 2.3 屏幕像素密度 2.4 屏幕尺寸、分辨率、像素密度三者关系 三、常用单位 3.1 密度无关像素(dp) 3.2 独立比例像素&#xff08;sp&#xff09; 3.3 dp与px的转换 四、解决方案 4.1 今日头条…

golang学习笔记——基础01

文章目录 golang概述Go 语言特色Go 语言用途 Go 语言结构执行 Go 程序 Go 语言包管理01Go 语言包管理02Go 语言基础语法Go 标记行分隔符注释标识符字符串连接关键字、预定义标识符Go 语言的空格格式化字符串 Go 语言数据类型数字类型浮点型其他数字类型 Go 语言变量变量声明零值…

linux:删除乱码文件、目录

由于编码原因&#xff0c;在linux服务器上上传、创建中文文件或目录时&#xff0c;会产生乱码&#xff0c;如果想删除它&#xff0c;发现用rm命令是删除不了的&#xff0c;这种情况下&#xff0c;用find命令可以删除乱码的文件或目录。 首先进入乱码文件或目录所在的目录&…

伦敦银和美白银的关系

与黄金相似&#xff0c;世界上白银交易的基础就是伦敦白银市场&#xff0c;人们利用设立在伦敦的专们负责清算银行&#xff08;与黄金的清算银行相同&#xff09;所开设的账户进行白银保证金交易。在伦敦市场&#xff0c;以美元清算的伦敦白银价格&#xff0c;是以美元买进1金衡…

Pytorch torch.norm函数详解用法

torch.norm参数定义 torch版本1.6 def norm(input, p"fro", dimNone, keepdimFalse, outNone, dtypeNone)input input (Tensor): the input tensor 输入为tensorp p (int, float, inf, -inf, fro, nuc, optional): the order of norm. Default: froThe following …

【LeetCode刷题日志】20.有效的括号

&#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;C/C领域新星创作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;LeetCode 刷题日志&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;…

[工业自动化-23]:西门子S7-15xxx编程 - 软件编程 - 西门子PLC人机界面交互HMI功能概述、硬件环境准备、软件环境准备

目录 一、什么是人机界面 二、什么是PLC人机交互界面HMI 三、人机界面设计的功能列表 四、开发主机与PLC的连接方式 五、开发主机与HMI的连接方式 六、HMI组态 一、什么是人机界面 人机界面是指人与机器或系统之间的交互界面。它是人类与计算机或其他设备之间进行信息交换…

计算机毕业设计选题推荐-人才招聘微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 1》(5)

《Linux操作系统原理分析之Linux 进程管理 1》&#xff08;5&#xff09; 4 Linux 进程管理4.1 Linux 进程概述4.1.1 Linux 进程的组成4.1.2 Linux 进程在处理机上的执行状态4.1.3 进程空间和系统空间4.1.4 进程上下文和系统上下文 4 Linux 进程管理 4.1 Linux 进程概述 4.1.…

【Coppeliasim】 通过TCP与coppeliasim通信

仿真客户端&#xff0c; 代码中启动了tcp服务器。 simrequiresim socketrequiresocket-- 以下函数将数据写入套接字&#xff08;仅为简单起见只处理单个数据包&#xff09;&#xff1a; writeSocketDatafunction(client,data)local headerstring.char(59,57,math.mod(#data,25…

element ui修改select选择框背景色和边框色

一、修改选择框的背景色和边框色 style部分 .custom-select /deep/ .el-input__inner {color: #fff!important;border: 1px solid #326AFF;background: #04308D !important; } html部分 <el-select class"custom-select" v-model"dhvalue" placeholde…

高济健康:数字化科技创新与新零售碰撞 助推医疗产业优化升级

近日&#xff0c;第六届中国国际进口博览会在上海圆满落幕&#xff0c;首次亮相的高济健康作为一家专注大健康领域的疾病和健康管理公司&#xff0c;在本届进博会上向业内外展示了围绕“15分钟步行健康生活圈”构建进行的全域数字化升级成果。高济健康通过数字化科技创新与新零…

Linux安装OpenCV并配置VSCode环境

Linux安装OpenCV并配置VSCode环境 安装OpenCV环境安装必需工具下载并解压OpenCV库&#xff08;Opencv Core Modules和opencv_contrib&#xff09;创建构建目录&#xff0c;进行构建验证构建结果安装验证安装结果 配置VSCode环境创建项目文件修改配置信息执行程序 安装环境 Ubun…