小学课后服务 Python少儿编程 基础篇:12-找质数 课件 (19张PPT)

资源下载
  1. 二一教育资源

小学课后服务 Python少儿编程 基础篇:12-找质数 课件 (19张PPT)

资源简介

(共19张PPT)
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
少儿编程课
找质数
无限循环语句
while True:

if 条件:

break
在不能预先明确知道循环次数的时候,只能使用while进行循环,当条件满足时使用break语句退出循环
列表中元素的添加
append(元素):向列表容器中添加内容
s=[1,2,3,4,5,6]
s.append(7)
s.append(8)
print(s)
又称为素数,在大于1的自然数中除了1和它本身以外不能再被其它数整除
自然数中不是质数的数字称为合数
任何一个合数都可以拆分为若干个质数之积。拆解的过程称为分解质因数
质数
打印100以内的所有质数
根据素数的定义,遍历从2开始的所有两位数字
定义空白列表容器盛放素数
根据素数定义,遍历从2开始到两位数自身-1的所有数字,与两位数自身做求余操作
根据第二步的执行结果,判定两位数是否为质数。如果是则放到类比容器中
找质数
找质数
s=[]
for x in range(2,100): #遍历所有2~99的数字
flag=True #经过下面的循环,flag还为True,则为质数
n=2 #从2开始到当前数字-1
while nif x % n==0: #如果当前数字被除了1和本身以外的数字整除了
flag=False #将flag改为False,并中止对当前数字后续数的判断
break
else:
n+=1 #不断增大n的数字,n会从2增加到x-1
if flag: #凡经过while循环flag仍为True
s.append(x) #则证明该数字是素数
print(s)
输入一个数字,判断是否为质数
获取用户输入的内容,并转为数字
利用一个flag记录判定结果,开始判定前flag的值为True
根据素数定义,遍历从2开始到输入数字-1的所有数字,并与输入数字做求余操作
如果有可以除尽的数字(求余为0),则将flag设置为False,并终止循环
循环结束后,如果flag值为True,则代表用户输入的是质数。如果flag的值为False,则代表用户输入的不是质数
判断质数
判断质数
n=input("请输入要判断的数:")
n=int(n)
flag=True
for x in range(2,n): #遍历所有2~n-1的数字
if n % x==0:
flag=False
break
if flag:
print("YES")
else:
print("NO")
找质数
找出所有各位数字之积为质数的两位数
创建一个空白列表盛放数字
遍历所有的两位数字
获得当前数字的个位数和十位数,如果两者之积为质数,则将两位数放入列表中
找质数
s=[]
for x in range(10,100):
a=x//10 #取两位数的十位数
b=x%10 #取两位数的个位数
n=a*b #计算两数之积
if n>1: #两数之积有可能是0或者1,这些都不是质数
flag=True
for y in range(2,n): #遍历2至n-1
if n % y==0: #如果能整除,说明n不是质数
flag=False
break
if flag: #经过上面循环如果flag还为True则说明n为质数
s.append(x) #将x添加到s中
print(s)
哥德巴赫猜想
史上和质数有关的数学猜想中,最著名的当然就是“哥德巴赫猜想”了。
哥德巴赫1742年给大数学家欧拉的信中提出了以下猜想:任意大于2的偶数都可写成两个质数之和。但是时至今日,哥德巴赫猜想也没有从数学上给出完备的证明。
目前最接近的论证是1966年,中国的陈景润证明了"1 + 2" 。
20世纪,随着计算机技术的发展,可以证明对于非常大的数始终是成立的。可是自然数是无限的,谁知道会不会在某一个足够大的偶数上,突然出现哥德巴赫猜想的反例呢?
哥德巴赫猜想
哥德巴赫猜想:每个大于2的偶数都可以表示成两个质数的和。
请将100以内的所有偶数表示为两个质数之和。
哥德巴赫猜想
哥德巴赫猜想:每个大于2的偶数都可以表示成两个质数的和
请将100以内的所有偶数表示为两个质数之和
获得一个100以内所有的质数列表
获得一个100以内所有的偶数列表
遍历偶数列表,从质数列表中找是否存在两个质数之和等于当前偶数
找到之后打印到控制台
哥德巴赫猜想
获取质数列表
s=[]
for x in range(2,100):
flag=True
for y in range(2,x):
if x % y==0:
flag=False
break
if flag:
s.append(x)
print("质数列表:",s)
哥德巴赫猜想
获取偶数列表
m=[]
for x in range(4,100):
if x %2==0:
m.append(x)
print("偶数列表:",m)
哥德巴赫猜想
偶数列表中的数字可以表示为两个质数列表中的数字之和:
for x in m: #遍历偶数列表
for y in s: #遍历质数列表
a=y
b=x-y #使用偶数减去当前的质数
if b in s: #若差也在质数列表中,则满足
print(str(x)+'='+str(a)+'+'+str(b))
break
找质数
所有两位质数中,个位数、十位数也都是质数的有哪些?
用一个空白列表盛放数据
生成两位数以内的质数列表
将每个两位数质数的个位、十位拆解出来
如果个位和十位也在质数列表中就抽取出来
找质数
s=[] #质数列表
m=[] #个位和十位均为质数的列表
for x in range(2,100):
flag=True
for y in range(2,x):
if x % y ==0:
flag=False
break
if flag:
s.append(x) #将质数添加到s中
print(s)
for n in s:
a=n//10 #十位数
b=n%10 #个位数
if a in s and b in s: #如果十位数、个位数均在s中
m.append(n) #将n添加到m列表中
print(m)

展开更多......

收起↑

资源预览