专栏首页Crossin的编程教室【每周一坑】验证哥德巴赫猜想

【每周一坑】验证哥德巴赫猜想

哥德巴赫在 1742 年给欧拉的信中提出了以下猜想:任一大于 2 的整数都可写成三个质数之和。(因现今数学界已经不使用“1 也是质数”这个约定,原初猜想的现代陈述为:任一大于 5 的整数都可写成三个质数之和。)欧拉在回信中也提出另一等价版本,即任一大于 2 的偶数都可写成两个质数之和。今日常见的猜想陈述为欧拉的版本。

尽管对于大多数人来说,无法看懂哥德巴赫猜想及相关问题的证明。不过我们借助计算机,可以快速地判断一个数是否符合哥德巴赫猜想。(只需在判断质数的代码基础上加上两三行。)

所以本周的问题就是:

实现一段代码,输入一个大于 2 的偶数 k,输出两个质数 m、n,满足 m + n == k

示例:

>>> Goldbach(123456)
7 123449
>>> Goldbach(12345678)
31 12345647

期待各位同学提交解答。

提交代码可以使用 paste.ubuntu.com 或 codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。

往期问题可通过公众号菜单栏“课外辅导”栏目中进入查看。

【杨辉三角形】解答

针对上一期的杨辉三角形题目,我们首先来看如何生成杨辉三角列表,然后解决如何从杨辉三角列表中取值。

生成一个 M 行的杨辉三角列表

def yanghui(n):
    lst = []
    for row in range(n):
        if row < 2:
            n_row = [1 for i in range(row+1)]
        else:
            last_row = lst[-1]
            n_row = [last_row[i]+last_row[i+1] for i in range(len(last_row)-1)]
            n_row = [1] + n_row + [1]
        lst.append(n_row)
    return lst

yh = yanghui(5)
for i in yh:
    print('{:^15}'.format(str(i)[1:-1]))

结果:

       1
     1, 1
    1, 2, 1
  1, 3, 3, 1
 1, 4, 6, 4, 1

既然已经得到了杨辉三角列表的生成方法,获取其第 M 行左起第 N 个数就十分容易了。

def yanghui_2(n,k):
    lst = yanghui(n)[-1]
    return lst[k]

print(yanghui_2(5,3))

输出:4

上周 @FisherC、@严迪、@疯琴、@Kunz、@王任、@右边先森、@lisp 等同学提交了代码,其中 @Kunz、@王任 完成了附加题。如果还不能写出的同学可以从上一期的留言中寻找他们的代码参考。

『码上行动』在线学习班正在开放中,详情回复 码上行动

本文分享自微信公众号 - Crossin的编程教室(crossincode),作者:crossin

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【每周一坑】校验文件哈希

    先说个通知,给参与了码上行动的同学:又一期展示学习成果的编程擂台活动开始了,即是练手的好机会,又能得到助教的全程支持,还可以得积分赢奖金。赶紧来报名吧!从课程首...

    Crossin先生
  • 虎扑热帖|Python数据分析|NBA的球星们喜欢在哪个位置出手

    1. 这篇数据分析案例,我做了个视频版本,对代码做了解读,讲了运行的注意事项和一些有的没的,供需。对于视频制作还不是很有经验,多包涵。(视频里有彩蛋)

    Crossin先生
  • 身份证号码校验算法

    1、数字含义 中国大陆第二代身份证号码由18位数据或字母组成,每位数据都有特定的含义,结果如下: ? 每组数字都有不同的含义: 第1至2位数字代表所在省(直辖市...

    Crossin先生
  • Xtrabackup 8.0.1对MySQL8.0の初体験

    在9月12号,Percona Xtrabackup 发布关于支持MySQL8.0的备份支持的测试版本。(作者严重怀疑,是不是因Percona的工程师想听iPho...

    [3306 Pai ] 社区
  • 用 Wolfram 语言绘制电子轨道

    WolframChina
  • 企业培训平台OpenSesame融资900万美金,将试水VR教育

    VRPinea
  • Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8E\xB1' for

    最近在做关于社交项目时,有一个发红包功能,其中涉及到红包描述,一直报错,后来看日志,才发现竟是因为输入了Emoji表情的原因,由于我的mysql数据库是utf8...

    一诺千金
  • 第一个,net core项目,一起入门 !!!

      最近项目上开始使用.net core,新的项目,熟悉的东西比较多,现在花点时间来梳理一下,重头开始搭建一个.net core项目。哈哈,这个相对老手来说,估...

    小小许
  • Bytom Dapp 开发笔记(三):Dapp Demo前端源码分析

    本章内容会针对比原官方提供的dapp-demo,分析里面的前端源码,分析清楚整个demo的流程,然后针对里面开发过程遇到的坑,添加一下个人的见解还有解决的方案。

    比原链Bytom
  • 如何使用 BTrace v.2.0.1

    前两周学习 Java Agent、Byte Buddy 的时候,发现了一个新工具 —— BTrace,一款由 sun 公司推出的适用于 Java 平台的安全、动...

    FoamValue

扫码关注云+社区

领取腾讯云代金券