189 8069 5689

python因子函数 python 求因子

Python编写函数.求出一个数除了1和自身以外的因子。

def fun(n: int):

成都网络公司-成都网站建设公司创新互联公司10余年经验成就非凡,专业从事成都做网站、成都网站制作,成都网页设计,成都网页制作,软文平台一元广告等。10余年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:13518219792,我们期待您的来电!

L = [ ]

for i in range(2, n // 2 + 1):

if not n % i:

L.append(i)

return L

print(fun(256))

一个Python函数,求一个数质因子,总是报错?

1. 首先解决你的语法问题

i和j是局部变量,只在当前for循环的语句内有效,所以,你的if j==i这一句就访问了一个失效的变量j,同样你的递归调用一样访问了j,因此我建议你在外层循环上面加上一句i = j = 2(反正赋初值不要用0就行,因为你的递归调用k/j可能造成除0异常)

2. 算法问题

你采用了递归求解,k==1作为递归退出条件本身是正确的,而作为参数合法性判断则显得有些不足,我建议应该修改为k = 1。

另外,你的算法会存在一个不影响正常功能的小缺陷,那就是可能重复打印质因子,比如算100的质因子,就会重复打印出两个2和两个5,因为先算出100的质因子2以后,接着算100/2的质因子,而50同样存在质因子2,整个过程就变成了

kj(100)

kj(50)

kj(25)

kj(5)

因此结果是

2

2

5

5

关于这一点,你可以忽略不计,或者通过调整代码自己进行规避

希望我的回答能够对你有所帮助

python定义求最大公因子的函数,随机生成二位数,输出它们的最大公因子

这个其实很简单,思路是通过列表推导式生成三个2位数的随机数,再通过max内建函数取最大数

上代码了

max( [random.randint(10, 99) for i in range(3)])


当前标题:python因子函数 python 求因子
URL标题:http://jkwzsj.com/article/doejsds.html

其他资讯