066-质因数
每个合数都可以写成几个质数相乘的形式,这几个质数都叫做这个合数的质因数。如果一个质数是某个数的约数,那么就说这个质数是这个数的质因数。 就是一个数的约数,并且是质数,比如8=2乘2乘2,2就是8的质因数。12=2×2×3,2和3就是12的质因数。把一个式子以12=2×2×3的形式表示,叫做分解质因数。16=2×2×2×2,2就是16的质因数,把一个合数写成几个质数相乘的形式表示,叫做分解质因数。 分解质因数的方法是先用一个合数的最小质因数去除这个合数,得出的数若是一个质数,就写成这个合数相乘形式;若是一个合数就继续按原来的方法,直至最后是一个质数 。 分解质因数的有两种表示方法,除了大家最常用知道的“短除分解形式”之外,还有一种方法就是“塔形分解形式”。 分解质因数对解决一些自然数和乘积的问题有很大的帮助,同时又为求最大公约数和最小公倍数做了重要的铺垫。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ # 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。其实就是求最小的能分解的因数 n = int(input('请输入需要分解的正数:')) # 创建一个列表用来存放遍历出来的因数 lt = [] # 给n换个名字记录,便于打印时打印出用户输入的n m = n while n > 1: for i in range(2,n+1): if n%i==0: # 记录下用最小因数分解后的n ,因为是从2开始的因此都是先寻找的最小的,用的就是短除法 n = n//i #因为n对i能够求余等于0因此可以直接整除 # 把i转换成str,存到列表,便于后面用join拼接字符串列表, lt.append(str(i)) # 找到一个最小的因数时,就跳出for in循环,开始下一次循环,每次循环都是对当前数的乘法的分解 break if len(lt) == 1: print(m,'=','1 ×',m) else: s = '×'.join(lt) print(m,'=',s) |
连质因数我都不会求,感觉受到了重大的打击,唉.