每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数。如30=2×3×5 。如果本身就是质数,就不用再分解了。
把一个数分解质因数,要从最小的质数除起,一直除到结果为质数为止。分解质因数的算式叫短除法,和除法的性质相似,还可以用来求多个数的公因式。
分解质因数的方法有两种:
1、相乘法
写成几个质数相乘的形式(这些不重复的质数即为质因数),实际运算时可采用逐步分解的方式。
如:36=2*2*3*3 运算时可逐步分解写成36=4*9=2*2*3*3或3*12=3*2*2*3
2、短除法
从最小的质数除起,一直除到结果为质数为止。分解质因数的算式的叫短除法。
下面我们来讲解如何用python来解题
在进行质因数分解前,先判断其是否为合数,如果不是则直接输出,如果输入的数为合数,则需要一步步的进行分解,要从最小的质数除起,一直除到结果为质数为止。如:30 =2x3x5
def prime_number(input_number):
"""
判断是否为质(素)数
"""
is_prime_number = False
for i in range(2, input_number):
if input_number % i == 0:
break
else:
is_prime_number = True
return is_prime_number
# 再定义一个函数,进行分解
def prime_factor_decomposition(input_number):
"""
质因数分解
"""
print(input_number, "=", end="")
has_number = True
while has_number:
for i in range(2, input_number + 1):
if input_number % i == 0:
print(i, end="")
break
if input_number == i:
has_number = False
else:
input_number = int(input_number / i)
print("*", end="")
def main():
"""
主函数
"""
input_number = int(input("请输入一个整数:")) #输入一个要分解的整数
if prime_number(input_number): #调用第一个函数,判断是否为质数
print("{}是一个质数,无法进行质因数分解".format(input_number))
else: #如果不是质数,则调用第二个函数进行质因数分解
prime_factor_decomposition(input_number)
if __name__ == "__main__":
main()
python 语言很简洁,简洁到足够清楚方便地表达你的数学思路。我愿意用python 来表达数学思维。一举两得呀。