P1304 哥德巴赫猜想

这篇具有很好参考价值的文章主要介绍了P1304 哥德巴赫猜想。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目描述

输入一个偶数 N N N,验证 4 ∼ N 4\sim N 4N 所有偶数是否符合哥德巴赫猜想:任一大于 2 2 2 的偶数都可写成两个质数之和。如果一个数不止一种分法,则输出第一个加数相比其他分法最小的方案。例如 10 10 10 10 = 3 + 7 = 5 + 5 10=3+7=5+5 10=3+7=5+5,则 10 = 5 + 5 10=5+5 10=5+5 是错误答案。

输入格式

第一行输入一个正偶数 N N N

输出格式

输出 N − 2 2 \dfrac{N-2}{2} 2N2 行。对于第 i i i 行:

首先先输出正偶数 2 i + 2 2i+2 2i+2,然后输出等号,再输出加和为 2 i + 2 2i+2 2i+2 且第一个加数最小的两个质数,以加号隔开。

样例 #1

样例输入 #1

10

样例输出 #1

4=2+2
6=3+3
8=3+5
10=3+7

提示

数据保证,$ 4 \leq N\leq10000$。

1.题目分析

输入一个偶数,代表右边界,从4到有边界遍历每一个偶数,输出每一个偶数的两个质数之和,保证左边的质数最小化。
说一下质数的判断方法:不能够被1以外的任何自身的因子整除。

2.题目思路

写一个判断质数的函数,输入N,写一个数组存储N以内的所有质数,
用一个三层循环,第一层代表4到N的偶数,第二层代表第一个质数的遍历,第三层代表第二个质数的遍历,
然后判断偶数等于两个质数之和的情况,打印即可。
值得一提的是,第一个质数应该小于第二个质数,
遍历到一组和的时候,需要直接结束本轮最外部的偶数循环。文章来源地址https://www.toymoban.com/news/detail-638773.html

3.代码实现

#include <stdio.h>
#include <math.h>

//判断质数的函数
int isPrimer(int n) {
    int flag = 1;
    //对1和0进行特判
    if (n == 1 || n == 0) {
        flag = 0;
    }
    for (int i = 2; i <= sqrt(n); ++i) {
        if (n % i == 0) {
            //可以被自身整除则不为质数
            flag = 0;
        }
    }
    return flag;
}

int main() {
    int n;
    scanf("%d", &n);
    //存放n以内所有的质数
    int arr[n];
    int cnt = 0;
    for (int j = 2; j < n; ++j) {
        //存放质数
        if (isPrimer(j) == 1) {
            arr[cnt] = j;
            cnt++;
        }
    }
    //跳出内部循环的标记
    int flag = 1;
    //遍历偶数
    for (int i = 4; i <= n; i += 2) {
        for (int j = 0; j < cnt; ++j) {
            flag = 1;
            for (int k = j; k < cnt; ++k) {
                //判断质数之和等于偶数
                if (arr[j] + arr[k] == i) {
                    printf("%d=%d+%d\n", i, arr[j], arr[k]);
                    flag = 0;
                }
            }
            //当本轮偶数找到质数和之时,跳出本轮
            if (flag == 0) {
                break;
            }
        }
    }
    return 0;
}

到了这里,关于P1304 哥德巴赫猜想的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • leetcode 1304. 和为零的 N 个不同整数

    题目描述 解题思路 执行结果 leetcode 1304. 和为零的 N 个不同整数. 题目描述 和为零的 N 个不同整数 给你一个整数 n,请你返回 任意 一个由 n 个 各不相同 的整数组成的数组,并且这 n 个数相加和为 0 。 示例 1: 输入:n = 5 输出:[-7,-1,1,3,4] 解释:这些数组也是正确的 [-5,-1,

    2024年02月11日
    浏览(37)
  • 超实用的Go语言基础教程,让你快速上手刷题!!

    工欲善其事,必先利其器。掌握Go的基础语法还不够,还需要勤加练习,修习“外功”,才能达到出奇制胜的效果。 在大致了解Go语言的基本语法后,我就迫不得已地想使用这门语言。可是我发现编程思路不是问题,很大的问题是“手慢”,不熟悉常用写法(可能这就是快速

    2024年02月04日
    浏览(45)
  • [数据集][VOC][目标检测]河道垃圾水面漂浮物数据集目标检测可用yolo训练-1304张介绍

    数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):1304 标注数量(xml文件个数):1304 标注类别数:1 标注类别名称:[\\\"trash\\\"] 每个类别标注的框数: trash count = 1386 数据集详细介绍: [数据集介绍][目标检测

    2024年02月05日
    浏览(58)
  • P5727 【深基5.例3】冰雹猜想

    给出一个正整数 n n n ,然后对这个数字一直进行下面的操作:如果这个数字是奇数,那么将其乘 3 3 3 再加 1 1 1 ,否则除以 2 2 2 。经过若干次循环后,最终都会回到 1 1 1 。经过验证很大的数字( 7 × 1 0 11 7times10^{11} 7 × 1 0 11 )都可以按照这样的方式比变成 1 1 1 ,所以被称为

    2024年02月15日
    浏览(28)
  • 第61讲:Python编程案例之角谷猜想

    日本的角谷提出了一个猜想:对于任意的自然数,反复进行如下的运算,总可以得到运算结果1: 如果自然数为奇数,那么乘以3然后加1。 如果自然数为偶数,则除以2。 基于这两个运算策略,任何自然数经过反复运算,总可以得到结果1。 这个猜想到目前为止不认为是正确的

    2024年02月10日
    浏览(27)
  • 核苷酸与相对论的数学关系猜想

        质量-鸟嘌呤      M-G     金   收缩     能量-胸腺嘧啶  E-T      火   混沌     时间-胞嘧啶      T-C      水   次序     空间-腺嘌呤      S-A      木    扩散     确定了这三种对应关系之后,我们就可以用相对论里面的数学关系来确定基因的关

    2024年01月23日
    浏览(40)
  • C++奇迹之旅:探索类对象模型内存的存储猜想

    上回我们学习了类的定义,初步了解了什么是类?类的定义,以及类的三个访问限定符: public , private , protected ,本小节将讲解类的实例化,类对象模型的猜想存储,及三种简单类的计算。 在 C++ 中,类的实例化是指创建一个类的对象。当我们定义了一个类之后,就可以根据

    2024年04月12日
    浏览(37)
  • 【ARM Trace32(劳特巴赫) 高级篇 20 -- SNOOPer 使用介绍】

    请阅读 【Trace32 ARM 专栏导读】

    2024年02月03日
    浏览(41)
  • 劳特巴赫仿真测试工具Trace32的基本使用(cmm文件)

    使用PRACTICE 脚本(.cmm) 在TRACE32 中使用PRACTICE 脚本(*.cmm)将帮助你: 在调试器启动时立即执行命令 根据您的项目需求自定义TRACE32PowerView用户界面 加载应用程序或符号 使调试操作具有可重复性, 并可用于验证目的和回归测试 自动启动脚本 安装 TRACE32 软件后,脚本 autostart.cmm 将

    2024年02月02日
    浏览(57)
  • 速锐得猎奇与猜想:数字化工业互联网能否真的走进未来

    前年的8月份,我们独立设计一款燃气报警器,包括设计产品图纸,嵌入式软件、LED显示、核心代码、CAN网络及485架构、云端SAAS框图,应用场景等,在去年的5月份直接进入到了量产,第一批数量是2000套,升级工具、配套测试软件、验证实验室等都搭建完成。 艾默生和费希尔

    2024年02月09日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包