📅  最后修改于: 2023-12-03 15:13:10.005000             🧑  作者: Mango
本文介绍了NCERT课本第14章“分解”的第3个练习的解决方案。该练习要求我们编写一个Python程序,输入一个数字n,计算并输出n的所有质因数。
首先,我们需要定义一个函数 prime_factors(n)
,该函数能够计算并返回一个列表,该列表包含了数字n的所有质因数。下面是 prime_factors(n)
函数的完整代码:
def prime_factors(n):
factors = []
i = 2
while i <= n:
if n % i == 0:
factors.append(i)
n //= i
else:
i += 1
return factors
在 prime_factors(n)
函数中,我们定义了一个空列表 factors
,用于存储数字n的质因数。我们同时定义了一个变量 i
,初始值为2,表示我们从数字2开始检查n的因数。
接着,我们进入了一个while循环。在每一次循环中,我们检查n是否可以被i整除。如果可以,那么i就是n的一个质因数,我们将i添加到 factors
列表中,并将 n 除以 i 的商赋值给n,然后继续检查i是否是n的因数。如果不能被i整除,那么i增加1,然后继续检查i是否是n的因数。
当i大于n时,循环结束。此时 factors
列表中存储了n的所有质因数,我们将该列表返回给调用函数的程序。
在主程序中,我们可以调用 prime_factors(n)
函数来计算数字n的所有质因数,并将返回的列表输出到屏幕上。下面是完整的Python代码:
def prime_factors(n):
factors = []
i = 2
while i <= n:
if n % i == 0:
factors.append(i)
n //= i
else:
i += 1
return factors
n = int(input("请输入一个数字:"))
print("{}的质因数是:{}".format(n, prime_factors(n)))
在运行该程序时,我们首先需要从用户处获取一个数字n。然后,通过 prime_factors(n)
函数计算数字n的所有质因数,并将结果输出到屏幕上。
本文介绍了如何编写一个Python程序,计算一个数字的所有质因数。通过学习,我们了解了如何使用while循环、if语句和函数来实现该程序。该程序的解决方案非常简单而且高效,可以在O(n)的时间复杂度内计算一个数字的所有质因数。