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

每日小语

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

自己敲写

这里需要用到一个联系: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)。

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

撒花花~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3.ubuntu20.04环境的ros搭建

ros搭建比较简单&#xff0c;主要步骤如下&#xff1a; 1.配置ros软件源&#xff1a; sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list 2.配置密钥 sudo apt-key adv --keyser…

MATLAB 模型预测控制(MPC)控制入门 —— 设计并仿真 MPC 控制器

系列文章目录 文章目录 系列文章目录前言一、使用 MPC Designer 设计控制器1.1 CSTR 模型1.2 导入被控对象并定义 MPC 结构1.3 定义输入和输出通道属性1.4 配置仿真场景1.5 配置控制器水平线1.6 定义输入约束条件1.7 指定控制器调整权重1.8 消除输出超调1.9 测试控制器抗干扰能…

node 第十九天 使用node插件node-jsonwebtoken实现身份令牌jwt认证

实现效果如下 前后端分离token登录身份验证效果演示 node-jsonwebtoken 基于node实现的jwt方案&#xff0c; jwt也就是jsonwebtoken, 是一个web规范可以去了解一下~ 一个标准的jwt由三部分组成 第一部分&#xff1a;头部 第二部分&#xff1a;载荷&#xff0c;比如可以填入加密…

探索Scrapy中间件:自定义Selenium中间件实例解析

简介 Scrapy是一个强大的Python爬虫框架&#xff0c;可用于从网站上抓取数据。本教程将指导你创建自己的Scrapy爬虫。其中&#xff0c;中间件是其重要特性之一&#xff0c;允许开发者在爬取过程中拦截和处理请求与响应&#xff0c;实现个性化的爬虫行为。 本篇博客将深入探讨…

Pytorch torch.dot、torch.mv、torch.mm、torch.norm的用法详解

torch.dot的用法&#xff1a; 使用numpy求点积&#xff0c;对于二维的且一个二维的维数为1 torch.mv的用法&#xff1a; torch.mm的用法 torch.norm 名词解释&#xff1a;L2范数也就是向量的模&#xff0c;L1范数就是各个元素的绝对值之和例如&#xff1a;

Linux环境下C++ 接入OpenSSL

接上一篇&#xff1a;Windows环境下C 安装OpenSSL库 源码编译及使用&#xff08;VS2019&#xff09;_vs2019安装openssl_肥宝Fable的博客-CSDN博客 解决完本地windows环境&#xff0c;想赶紧在外网环境看看是否也正常。毕竟现在只是HelloWorld级别的&#xff0c;等东西多了&am…

Windows Server2012 R2修复SSL/TLS漏洞(CVE-2016-2183)

漏洞描述 CVE-2016-2183 是一个TLS加密套件缺陷&#xff0c;存在于OpenSSL库中。该缺陷在于使用了弱随机数生成器&#xff0c;攻击者可以利用此缺陷预测随机数的值&#xff0c;从而成功绕过SSL/TLS连接的加密措施&#xff0c;实现中间人攻击。这个漏洞影响了OpenSSL 1.0.2版本…

Android——Gradle插件项目根目录settings.gradle和build.gradle

一、settings.gradle结构分析 项目根目录下的settings.gradle配置文件示例&#xff1a; pluginManagement {/*** The pluginManagement.repositories block configures the* repositories Gradle uses to search or download the Gradle plugins and* their transitive depen…

无需公网IP,使用MCSM面板一键搭建我的世界Minecraft服务器联机游戏

文章目录 前言1.Mcsmanager安装2.创建Minecraft服务器3.本地测试联机4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射内网端口 5.远程联机测试6. 配置固定远程联机端口地址6.1 保留一个固定TCP地址6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 前言 MCSManager是一个…

商业化三年,OceanBase在忙什么?

文&#xff5c;刘雨琦 2020年&#xff0c;国产数据库厂商OceanBase&#xff08;以下简称OB&#xff09;商业化的第一年&#xff0c;只有18个客户。 如何打开局面&#xff0c;让这个从蚂蚁场景中走出来的数据库活下去&#xff0c;并进入到更多的场景里&#xff0c;发挥更大的价…

对分过层后的类进行可视化

变量是&#xff1a; std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> clusters_k_upper std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> clusters_k_lower std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr> clusters_un…

无需添加udid,ios企业证书的自助生成方法

我们开发uniapp的app的时候&#xff0c;需要苹果证书去打包。 假如申请的是个人或company类型的苹果开发者账号&#xff0c;必须上架才能安装&#xff0c;异常的麻烦&#xff0c;但是有一些app&#xff0c;比如企业内部使用的app&#xff0c;是不需要上架苹果应用市场的。 假…

C语言真的需要头文件吗?

C语言真的需要头文件吗&#xff1f; 头文件的作用是什么&#xff1f; 如果你直接定义了函数&#xff0c;当然不需要头文件。 因为调用函数&#xff0c;你得知道函数的参数有多少&#xff0c;都什么类型的&#xff0c;返回值是什么&#xff0c;这样才能调用。最近很多小伙伴找…

免费开源的区域屏幕录制(gif转换)工具(支持编辑功能)

软件优点&#xff1a;区域截屏&#xff0c;直接转换为gif即刻分享&#xff0c;免费开源&#xff0c;支持编辑功能 它可以让你轻松地录制屏幕&#xff0c;摄像头或画板的动画&#xff0c;并编辑、保存为 GIF&#xff0c;视频或其他格式。 下载并安装 ScreenToGif 首先&#xf…

HTTPS流量抓包分析中出现无法加载key

HTTPS流量抓包分析(TLSv1.2)&#xff0c;这篇文章分析的比较透彻&#xff0c;就不班门弄斧了 https://zhuanlan.zhihu.com/p/635420027 写个小问题&#xff1a;RSA密钥对话框加载rsa key文件的时候注意不要在中文目录下&#xff0c;否则会提示&#xff1a;“Enter the passwor…

系列一、GC概述 作用域

一、概述 GC是垃圾回收的意思。次数上频繁收集Young区&#xff0c;少收集Old区&#xff0c;基本不动元空间。 二、作用域 GC的作用域是方法区和堆&#xff0c;主要针对于堆。

程序员如何把【知识体系化】

你好&#xff0c;我是田哥 最近有不少人找我聊如何准备面试&#xff0c;其中有个点是大家都无从下手的问题。 这个问题估计是困扰了很多人&#xff0c;最可怕的是都没有想到什么好点办法。 下面来说说个人的想法&#xff08;仅供参考&#xff09;。 我该怎么准备&#xff1f;这…

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…

zookeperkafka学习

1、why kafka 优点 缺点kafka 吞吐量高&#xff0c;对批处理和异步处理做了大量的设计&#xff0c;因此Kafka可以得到非常高的性能。延迟也会高&#xff0c;不适合电商场景。RabbitMQ 如果有大量消息堆积在队列中&#xff0c;性能会急剧下降每秒处理几万到几十万的消息。如果…

接口测试 —— 接口测试的意义

1、接口测试的意义&#xff08;优势&#xff09; &#xff08;1&#xff09;更早的发现问题&#xff1a; 不少的测试资料中强调&#xff0c;测试应该更早的介入到项目开发中&#xff0c;因为越早的发现bug&#xff0c;修复的成本越低。 然而功能测试必须要等到系统提供可测试…