python 找质数的个数_迎1024程序员节,说质数与哥德巴赫猜想(上)

迎1024程序员节,说质数与哥德巴赫猜想(上)

Python数学编程第0讲 2020.10.17

1024程序员节的来历

76e146657ccce151712c9550026891db.png

1024,10月24日,是联合国日、世界发展信息日。

1024 = 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 = 2^10

1024,在计算机世界,有特殊的地位。大家熟悉的存储容量,1KB=1024字节,1兆(MB)=1024KB,1GB=1024MB,1TB=1024GB……10月24日,也成为了程序员节。

793f426c30c8247137f991d75325ef27.png

略谈少儿编程

国家层面,2018年,教育部印发《教育信息化2.0行动计划》(教技〔2018〕6号),提出“完善课程方案和课程标准,充实适应信息时代、智能时代发展需要的人工智能和编程课程内容。推动落实各级各类学校的信息技术课程,并将信息技术纳入初、高中学业水平考试。继续办好各类应用交流与推广活动,创新活动的内容和形式,全面提升学生信息素养”。2019年,教育部发布《关于加强和改进中小学实验教学的意见》(教基〔2019〕16号)。要求“2023年前要将实验操作纳入初中学业水平考试,考试成绩纳入高中阶段学校招生录取依据”,提出“注重加强实验教学与多学科融合教育、编程教育、创客教育、人工智能教育、社会实践等有机融合”。更不用说这几年的高考数学试卷,都出现了编程题。

3fbc933d529dcf4cd4dd7f4fb9c33d5f.png

小孩子学编程,学什么?

乔布斯曾在一次访谈中提出:“我觉得每个人都应该学习一门编程语言。学习编程教你如何思考,就像学法律一样学法律并不一定要为了做律师,但法律教你一种思考方式。学习编程也一样,我把计算机科学看成是教育,每个人都应该花至少1年时间学习编程。”

漂亮的代码、严格规范的语言风格、计算思维训练、动手能力都是编程教育的重要内容。

Python数学编程项目,让孩子将解决问题的思路、方法和手段转化为计算机理解的形式,并通过设置合理顺序的指令让计算机根据指令一步步工作,从而完成某项特定的任务。希望不仅能够培养孩子对数学、编程的兴趣,更培养孩子对世界的好奇心,换个角度看世界,从本质上理解软件、游戏等程序,更好地适应未来的科技社会。

认识计算机

b3f018c4c83743bcbaf5c0b141d04607.png

现代社会,早已进入信息时代、人工智能时代,人们的生活,越来越离不开互联网、物联网,离不开计算机,各种设备里,都有计算机的身影。而计算机的运行,全靠软件来指挥。2014年,苹果公司全球开发者大会的宣传语就是“Write the Code. Change the World”,之后更是有“软件定义世界”的说法。

计算机那么能干,它真的比人聪明吗?

不,计算机是算得快、记得牢,但它其实只认识0和1,它如何行动,全是软件程序的安排,而这些软件程序,是人编写的。

计算机只认识0和1,那我们怎么教它动作呢?

早年的机器语言真的就是用0101来给它下指令 : (

005f91858ee838f63c03d79cc941f175.png

这些穿孔纸带就是用指定位置是否有孔来代表0和1,把指令输入计算机中。

后来,人们创造了汇编语言,用简单的助记符代表指令。

dd8d852a010a5da770a82b717c7d5a90.png

再后来,人们又创造了更接近人类语言的高级语言。

613cbeffeeac28874f9af5b9b7c8a312.png

Python学习环境

为什么我们要带大家用python来写程序呢?

962aa75acfffa63561549a60b4d0d18e.png

用地产大佬潘石屹的话来说

841f2be038c5e4207ead2a43f690734a.png

ed517ddf9542bbcd6557677d86f1cf84.png

77a568e8f00dd6103cd7d15770509f62.png

要使用python,可以从官网下载软件安装。

bd3b55e43ba0e6c369b6f0324eef45b5.png

安装后从开始菜单执行“Python”下的“IDLE”,即可使用python

b61775a2eeaf866973cebd3677505287.png

让我们来试试python的数学运算:

加 + 减 - 乘 * 除 / 取商 // 模(取余数) % 幂(乘方) **

1f0c8fa00e7c00f4c27b1ca69e3ac2f5.png

看看官网首页展示的简单输入输出例子:

# Python 3: Simple output (with Unicode)>>> print("Hello, I'm Python!")  # print,输出函数Hello, I'm Python!# Input, assignment>>> name = input('What is your name?\n')  # input,输入函数>>> print('Hi, %s.' % name)What is your name?PythonHi, Python.

教计算机判断质数

有一个人,他1996年就去世了,但在2009年建国60年人民英模、2018年改革开放40年杰出贡献人物、2019年建国70年最美奋斗者等评选中都榜上有名。他就是数学家陈景润,我们先看个短片。

《人民英模 哥德巴赫猜想第一人 陈景润》

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。

质数在自然界、在人类生活中有很多神奇的应用。现代密码学就是以质数的特性为基础的,许多生物的生命周期是质数(单位为年),这样可以最大程度地减少碰见天敌的机会。

怎么判断一个数n是不是质数呢?

根据质数的定义,我们可以挨个从1到n,看看能不能整除n,统计因子的个数,如果只有两个,那n就是质数。

怎么生成1到n的数列呢?range函数,range(a,b) 会生成a到b-1的序列。

怎么取出序列里的数呢?for语句,for i in 序列: 可以依次取出序列里的项目,执行下一层的代码内容。

n = 9range(1, n+1)for i in range(1, n+1):  # python用缩进来表示代码的层次,:表示下一行开始是下一层代码    print(i)

怎么判断n是否能被i整除呢?模运算,余数为0说明能整除

n = 9i = 3n % ii = 2n % i

怎么判断余数是不是0呢?比较运算

a = 30b = 20a > b   # 大于a < b   # 小于a == b  # 相等a >= b  # 大于等于a <= b  # 小于等于a != b  # 不等于if(a%2==0):  # 如果为真则执行    print('%d是偶数' % a)    if(a%2==0):  # 如果为真则执行    print('%d是偶数' % a)else:        # 否则执行    print('%d是奇数' % a)

看看组装起来的代码!

n = 100  # 设n为100counter = 0  # 计数器counter清零for i in range(1, n+1):  # i依次从1……n取出一个数    if(n%i==0):          # 如果i能整除n,计数器累加1        counter = counter + 1if(counter==2):              # 如果因数只有两个n就是质数,否则n是合数    print('%d是质数' % n)else:    print('%d是合数' % n)

如果n很大,就要算好多次,程序运行时间很长。有没有更好的方法呢?大家回家后好好想想,下次我们再一起改进。

课后练习

据说数学王子高斯小时候,数学老师曾让他们计算1+2+3+4+5+6+……+100的得数,同学们都忙着挨个挨个地相加,只有高斯巧妙发现了快速计算的方法,很快就得出了结果。你能不能教计算机用这两种方法各算一下?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值