如何将一个数分解质因数?
如果仔细来想一下,这个问题其并不是很难。
分析过程:比如,4=2*2,我们可以首先定义一个数字,然后将这个数字除以比它本身小的数字,如果可以整除(也即余数为0)的时候,可将此数保留下来,接着,再将保留下的这个数再次进行分解,直到除了其本身和1以外,不能再被其他比它小的数整除,即可结束打印并结束运行。
于是,我们想到了可以使用递归函数实现这项功能。
代码如下图所示。
import time # 引入时间,以便能够测试一下程序运行时间
start = time.time() # 程序开始运行的时间
number =int(input("请输入一个整数: ")) # 输入一个整数
while number !=1: # 条件判断,整数不等于1时
for iin range(1, number +1): # 输入的整数的范围,在此区间,且其分解的质数亦在此区间
if (number % i) ==0 and i !=1: # 如果此数遍历除以比此数小的数,余数为零,且i不等于1 以递归函数实现此功能
number =int(number / i) # 就将次数除以i并且取整,重新赋值给number
if number ==1: # 如果number等于1
print (" %d" %i) # 打印出i
else: # 否则
print (" %d *"%i, end='') # 打印出所有符合条件的质因数i,end=''是为了防止打印的质数换行。
break
end = time.time()# 程序结束时间
print('程序运行时间为%f'%(end-start))# 打印出程序运行时间差
2020年2月19日
北京市通州区北运河西京贸中心
网友评论