资源简介 (共22张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语句退出循环求余n // m = 商(整数)整除n % m = 余数公倍数公倍数是指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数。例如:24即是6的倍数也是8的倍数,则24就是6和8的公倍数。公倍数可以有多个,所有公倍数中最小的,就称为最小公倍数。公倍数100以内6和8的公倍数有哪些?最小公倍数?遍历100以内的所有数字,凡是可以同时整除6和8的就是公倍数用列表盛放所有公倍数所有公倍数中最小的那个,就是最小公倍数公倍数公倍数s=[]for x in range(1,100):if x % 6==0 and x % 8 ==0:s.append(x)print(s)print(min(s))两数之积等于两数最大公约数乘以最小公倍数。例如:6,8的最大公约数是2,则6*8=2*最小公倍数所以6,8的最小公倍数是24数学特性法求最小公倍数数学特性法求最小公倍数m=input('数1:')n=input('数2:')m,n=int(m),int(n)num1,num2=m,nwhile True:if m % n==0:breakelse:m,n=n,m%n #利用数学特性法计算最大公约数print(num1*num2/n) #两数相乘除以最大公约数得到最小公倍数穷举法:找到数字中最小的那个数,然后不断增加1,直到成为所有数字的倍数穷举法求最小公倍数穷举法求最小公倍数m=input('数1:')n=input('数2:')m,n=int(m),int(n)temp=m #临时数字可以等于任意一个输入的数字while True:if temp % m==0 and temp % n==0:breakelse:temp+=1 #只要还不是公倍数就在原有数字基础上加1print(temp)分解质因数每个合数都可以写成几个质数相乘的形式。把一个合数写成几个质数相乘的形式表示,这也是分解质因数,如16=2×2×2×2,2就是16的质因数。分解质因数将一个正整数分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:1、若这个质数恰等于n,则说明分解质因数的过程已经结束,输出即可。2、如果n>k,但n能被k整除,则应输出k的值,并用n除以k的商作为新的正整数n,重复执行第一步。3、如果n不能被k整除,则用k+1作为k的值,重复执行第一步。分解质因数输入任意一个数字,分解质因数,打印分解的结果。应先找到一个最小的质数2,然后按下述步骤完成:如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印即可如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商作为新的正整数n,重复执行第一步。如果n不能被k整除,则用k+1作为k的值,重复执行第一步。分解质因数m=input('数1:')m=int(m) #获取用户输入的数字k=2 #选择最小的质数s=[] #存放质因数的列表while True:if m==k: #如果输入的数字等于该质数s.append(k) #将质数添加到sbreak #中止循环elif m%k==0: #如果当前m可以整除km=m//k #则整除s.append(k) #并将k添加到列表else:k+=1 #如果m不能整除质数,则k+1print(s)用质因数计算最大公约数例如利用质因数列表计算数字24和30的最大公约数:1、24的质因数列表为 s1 = [ 2,2,2,3 ]30的质因数列表为s2 = [ 2,3,5 ]2、新创建两个列表a,b,让a等于两者中较长的列表,b等于两者中较短的列表。3、新建一个空白列表c,将a和b列表中均有的元素放入列表c。4、最终c = [2,3],数字连乘就可以得到最大公约数2*3 = 6所以24和30的最大公约数为6用质因数计算最大公约数s1=[2,3,5] #30的质因数列表s2=[2,2,2,2] #24的质因数列表a,b=s1,s2 #a,b分别为列表s1,s2c=[] #新建一个空列表for x in a:if x in b:c.append(x) #将a列表和b列表中均有的值放入空列表中print(c)in:如果在指定的序列中找到值返回True,否则返回False用质因数计算最小公倍数1、输入两个数字m,n。2、分别得到两个数字的质因数列表。3、提取两个列表中的质因数组成一个新的列表。4、将新列表中所有数字连乘,得到的积就是m和n的最小公倍数。用质因数计算最小公倍数如果两个数字的质因数列表长度不一致,例如24的质因数列表为s1 = [ 2,2,2,3 ]30的质因数列表为s2 = [ 2,3,5 ]则新创建两个列表a,b,让a等于两者中较长的列表,b等于两者中较短的列表。从b中依次取数字,一旦该数字在a中已经存在,则跳过该数字;否则将该数字添加到a中。例如: b中的2,3在a中已经存在,跳过;而b中的数字5在a中不存在,将数字5添加到a中。最终a = [2,2,2,3,5],数字连乘为2*2*2*3*5 = 120所以24和30的最小公倍数为120用质因数计算最小公倍数如果两个数字的质因数列表长度一致,例如:12的质因数列表为s1 = [ 2,2,3 ]8的质因数列表为s2 = [ 2,2,2 ]则新创建两个列表a,b,其中a等于s1,b等于s2。从b中依次取值与a中对应位数的值进行比较。若数字一致跳过该数字;否则,则将该数字添加到a中。b中前两个值与a中对应位数的值一致,跳过;b中第三个值与a中对应位数的值不一致,将数字2添加到a中。最终a = [2,2,3,2],数字连乘为2*2*3*2 = 24所以12和8的最小公倍数为24代码实现s1=[2,2,3]s2=[2,3,5]a,b=s1,s2if len(a)==len(b): #如果a,b长度一致for x in range(len(b)):if b[x]!=a[x]: #b和a中的值进行对应位比较a.append(b[x]) #如果对应位置上的值不等,则添加到a中else:if len(b)>len(a): #如果b的长度大于a,则交换a,b=b,a #交换a,b的值for x in b: #从b列表中取值if x not in a: #若这个值不在a列表中a.append(x) #则将这个值放到a列表中print(a)result=1for x in a:result*=x #连续乘积print(result) #打印最小公倍数not in:在指定序列中没有找到值返回True,否则返回False 展开更多...... 收起↑ 资源预览