(
课件网) 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,n while True: if m % n==0: break else: 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: break else: temp+=1 #只要还不是公倍数就在原有数字基础上加1 print(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) #将质数添加到s break #中止循环 elif m%k==0: #如果当前m可以整除k m=m//k #则整除 s.append(k) #并将k添加到列表 else: k+=1 #如果m不能整除质数,则k+1 print(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 用质因数计算最大公约数 ... ...