c题目13:验证100以内的数是否满足哥德巴赫猜想。(任一大于2的偶数都可以写成两个质数之和)

news2025/1/9 1:12:33

每日小语

活下去的诀窍是:保持愚蠢,又不能知道自己有多蠢。——王小波

自己思考

即要让第一个质数与这个数减去第一个质数的值都为质数,所以要满足几个条件

1.a+b=c

2.a为质数

3.b为质数

这里是否可以用到我之前刚学的自己设置的那个判断质数的函数呢,我觉得完全可以。

//100以内任意大于2的偶数都可写成两个质数之和
#include <stdio.h>

int IsPrime(int num)//输入参数是 num,即要判断的数
{
    int isPrime = 1;
    for (int i = 2; i < num; i++) 
        {
            if (num % i == 0) 
            {
                isPrime = 0;
                break;
            }
        }
    return 0;
}

int main()
{
    int num,prime;
        for(int i=2;i<100;i++)
        {
            IsPrime(prime);
            IsPrime(num-prime);
        }
    if(IsPrime(prime)==1&&IsPrime(num-prime)==1) 
    {
        printf("哥德巴赫猜想成立");
    }
    else
    {
        printf("不成立");
    }                       
    return 0;    
}

 敲写的过程中我不知道如何用if来判断,虽然程序没有报错,可他给的结果是“不成立”。

gpt解答疑惑

1.IsPrime函数没有正确返回结果。在该函数中,我设置了一个名为isPrime的本地变量来表示是否为质数,但在函数末尾将其值始终返回为0,所以无法正确判断是否为质数。你应该根据isPrime变量的值返回正确的结果。

int IsPrime(int num)
{
    int isPrime = 1;
    for (int i = 2; i < num; i++) 
    {
        if (num % i == 0) 
        {
            isPrime = 0;
            break;
        }
    }
    return isPrime;
}

return的不是0了,变成了Isprime???

gpt还是牛逼

#include <stdio.h>

int IsPrime(int num)// 输入参数是 num,即要判断的数
{
    int isPrime = 1;
    for (int i = 2; i < num; i++) 
    {
        if (num % i == 0) 
        {
            isPrime = 0;
            break;
        }
    }
    return isPrime;
}

int main()
{
    int num;
    for (int i = 4; i <= 100; i += 2) // 因为猜想是任意大于2的偶数,所以从4开始遍历偶数
    {
        num = i;
        int found = 0; // 用于标记是否找到了两个质数之和等于当前偶数
        
        for (int prime = 2; prime <= num / 2; prime++) // 在质数范围内搜索两个质数之和
        {
            if (IsPrime(prime) == 1 && IsPrime(num - prime) == 1) 
            {
                printf("哥德巴赫猜想成立:%d = %d + %d\n", num, prime, num - prime);
                found = 1;
                break; // 找到了,则跳出内部循环
            }
        }
        
        if (found == 0)
        {
            printf("不成立:%d\n", num);
        }
    }
    
    return 0;
}

之前忽视了这个应该是偶数,还初始设置了一个found=0,改变它的值来判断。

然后还是需要两个for循环来判断,这一点我还是不理解。

#include <stdio.h>

int IsPrime(int num)// 输入参数是 num,即要判断的数
{
    int isPrime = 1;
    for (int i = 2; i < num; i++) 
    {
        if (num % i == 0) 
        {
            isPrime = 0;
            break;
        }
    }
    return isPrime;
}

int main()
{
    int num;
    int found = 0; 
    for (int i = 4; i <= 100; i += 2) 
    {
        num = i;
        for (int prime = 2; prime <= num / 2; prime++)
        {
            if (IsPrime(prime) == 1 && IsPrime(num - prime) == 1) 
            {
                found = 1;
                break; 
            }
        }
    }    
    if (found == 0)
    {
        printf("不成立:%d\n", num);
    }
    else
    {
        printf("成立");
    }
    
    
    return 0;
}

以上这是精简代码。

第一个循环用来遍历 4 到 100 之间的所有偶数

第二个循环验证是否存在两个质数的和等于 `num`。

嗯,得加紧学一下两个循环了,目前还是不理解怎么运作的。

#include <stdio.h>

int IsPrime(int num)// 输入参数是 num,即要判断的数
{
    int isPrime = 1;
    for (int i = 2; i < num; i++) 
    {
        if (num % i == 0) 
        {
            isPrime = 0;
            break;
        }
    }
    return isPrime;
}

int main()
{
    int num;
    int found = 0; 
    for (int num = 4; num <= 100; num += 2) 
    {
        for (int prime = 2; prime <= num / 2; prime++)
        {
            if (IsPrime(prime) == 1 && IsPrime(num - prime) == 1) 
            {
                found = 1;
                break; 
            }
        }
    }    
    if (found == 0)
    {
        printf("不成立:%d\n", num);
    }
    else
    {
        printf("成立");
    }
    
    
    return 0;
}

最后为最精简代码,撒花花~

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

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

相关文章

matlab 混沌动力学行为-分岔图-李雅普指数等

1、内容简介 略 24-可以交流、咨询、答疑 2、内容说明 混沌动力学行为-分岔图-李雅普指数等 包含各种类型的混沌模型求解&#xff0c;包含其分叉图、李雅普指数等 混沌、分叉图、李雅普指数 3、仿真分析 略 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/…

MySQL之性能分析和系统调优

MySQL之性能分析和系统调优 性能分析 查看执行计划 EXPLAIN EXPLAIN作为MySQL的性能分析神器&#xff0c;可以用来分析SQL执行计划&#xff0c;需要理解分析结果可以帮助我们优化SQL explain select … from … [where ...]TABLE 表名 查询的每一行记录都对于着一张表 id 该…

CCC数字车钥匙(八)——BLE配对相关字段

2.1 配对连接协议 2.1.3 所有者配对广播 对于所有者配对&#xff0c;仅支持Legacy LE 1M PHY。ADV_IND需要按照Section 2.3.1.1 Volume 6 Part B。 事件类型&#xff1a;无指向可连接和可扫描。 ADV_IND中包含广播地址和广播数据&#xff0c;如下所示&#xff0c;其中广播地址…

火狐插件(附加组件)发布流程

1、进入开发者中心 开发者中心 :: Firefox 附加组件https://addons.mozilla.org/zh-CN/developers/ 路径&#xff1a; 2、首次使用会自动打开注册登录页 3、注册登录后点击 提交你的第一个附加组件 4、此时需要进行两步验证 5、点击身份验证应用 在打开的页面中根据个人实际…

外包搞了3年,感觉技术退步很明显......

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

数据结构-错题整理(1)-23/11/27

一&#xff1a; 题目&#xff1a; 广义表即我们通常所说的列表&#xff08;lists)。它放松了对表元素的原子性限制&#xff0c;允许他们有自身结构。那么广义表E((a,(a,b),((a,b),c)))的长度和深度分别为&#xff1f; 答案为1和4 知识点&#xff1a; 广义表的长度和深度 长…

【RT-DETR改进】InnerIoU思想结合传统 EIoU、SIoU、WIoU损失思想(小目标涨点效果明显)

论文地址&#xff1a;官方Inner-IoU论文地址点击即可跳转 官方代码地址&#xff1a;官方代码地址-官方只放出了两种结合方式CIoU、SIoU 本位改进地址&#xff1a; 文末提供完整代码块-包括InnerEIoU、InnerCIoU、InnerDIoU等七种结合方式和其AlphaIoU变种结合起来可以达到二十…

卡码网15 .链表的基本操作III

链表的基础操作III 时间限制&#xff1a;1.000S 空间限制&#xff1a;128MB 题目描述 请编写一个程序&#xff0c;实现以下链表操作&#xff1a;构建一个单向链表&#xff0c;链表中包含一组整数数据。 1. 实现在链表的第 n 个位置插入一个元素&#xff0c;输出整个链表的…

有IP没有域名可以申请证书吗?

一、IP证书是什么&#xff1f; ip证书是用于公网ip地址的SSL证书&#xff0c;与我们通常所讲的SSL证书并无本质上的区别&#xff0c;但由于SSL证书通常颁发给域名&#xff0c;而组织机构需要公共ip地址的SSL证书&#xff0c;这类SSL证书就是我们所说的ip证书。ip证书具有安全、…

C++ 学习 之 类的初始化与逗号运算符的联动

我们来看一个代码 class A { public:A(int x) {cout << "123" << endl;}A(int x, int y) {cout << "456" << endl;}}a (1, 2); int main() {} 这个代码的输出结果是什么&#xff1f; 答案是 123 因为编译器把 ( 1 , 2 ) 识别…

mysql区分大小写吗

mysql在windows下默认是不区分大小写的&#xff0c;在linux下默认是区分大小写的。 所以&#xff0c;为了避免出问题&#xff0c;许多公司的数据库编程规范中明确规定&#xff1a;库名、表名、列名、索引名一律小写&#xff0c;不同单词之间以下划线分割&#xff0c;且控制在3…

Python+Requests模块添加cookie

请求中添加cookies 对于某些网站&#xff0c;登录然后从浏览器中获取cookies&#xff0c;以后就可以直接拿着cookie登录了&#xff0c;无需输入用户 名密码。 一、在参数中添加cookie 在发送请求时使用cookies 代码示例&#xff1a; import requests # 1&#xff0c;在参数…

如何选择 Facebook 代理?

Facebook上从事业务推广、广告或资料推广以及群组的用户需要高质量且可靠的代理。使用代理&#xff0c;用户可以在账号被封锁的情况下访问自己的资料&#xff0c;同时与多人进行即时通信&#xff0c;并能够&#xff1a; 自动发送邀请参加各种活动&#xff1b; 通过特殊的机器人…

Java流处理之序列化和打印流

文章目录 序列化概述ObjectOutputStream类构造方法序列化操作 ObjectInputStream类构造方法反序列化操作1**反序列化操作2** 案例&#xff1a;序列化集合案例分析案例实现 打印流概述PrintStream类构造方法改变打印流向 序列化 概述 Java 提供了一种对象序列化的机制。用一个…

无人巡检 | AIRIOT变电站无人机运防一体管理解决方案

传统的变电站安全管理存在着人力成本高、效率低、安全风险难以全面控制等问题&#xff0c;主要依靠人工巡检和监控设备&#xff0c;往往存在如下的运维问题和管理痛点&#xff1a; 巡检监控能力差&#xff1a;传统变电站管理系统无法对变电站进行全面的巡检监控&#xff0c;以…

使用Xshell启动远程服务器上的tensorboard:本地浏览器打开

在远程服务器上启动的tensorboard产生的localhost网址用本地浏览器一般不能直接打开&#xff0c;我们需要建立本地PC与远程服务器的通信&#xff0c;将tensorboard的映射端口与本地端口连接起来&#xff08;参考解决方案&#xff09;。 一、连接远程服务器设置 二、添加SSH隧道…

SSM项目实战-service实现

1、SysUserService.java package com.atguigu.schedule.service;import com.atguigu.schedule.pojo.SysUser;public interface SysUserService {SysUser getSysUser(SysUser sysUser); }2、SysUserServiceImpl.java package com.atguigu.schedule.service.impl; import com.atg…

7nm项目之顶层规划——01数据导入

1.创建workspace 创建workspace后&#xff0c;在其目录下产生。 CORTEXA53.json文件是将有默认配置的文件master.json、有library的.config.json文件、tunes下CORTEXA53.tunes.json文件合并 注&#xff1a;tunes下的CORTEXA53.tunes.json文件可以覆盖一些master.json的设置…

Vue+Element-ui实例_在form中动态校验tag标签

1.开发需求 在日常开发中&#xff0c;我们会遇到form表单的动态添加和校验&#xff0c;当我们需要在动态添加的内容中再次动态使用输入框的时候&#xff0c;就会变得很繁琐&#xff0c;我在网上找了很多案例&#xff0c;没有符合自己需求的内容&#xff0c;只好闲暇时间自己搞…

Unity UGUI控件之Horizontal Layout Group

Horizontal Layout Group是Unity中的UGUI控件&#xff0c;用于在水平方向上对子对象进行布局。 主要有一下作用&#xff1a; 水平布局&#xff1a;Horizontal Layout Group将子对象按照水平方向进行布局&#xff0c;可以控制子对象的排列顺序和间距。自动调整尺寸&#xff1a…