python用函数求因数 python求最大公因数

求Python的质因数分解x=eval(input("请输入小于1000的整数:"))
k=2
print(x,"=",end="")
while x1:
if x%k==0:
print(k,end="")
x=x/k
if x1:
print("*",end="")
else:
k=k+1
Python求因数分解def m(n):
ret = []
while n1:
for i in range(n-1):
k = i+2
if n % k == 0:
ret.append(k)
n = int(n / k)
break
print(ret)
m(20)就可以输出20的因式分解了 。
至于如何处理成^就比较简单了,可以用 Counter 自己处理下 。
python输入一个正整数,求该数所有的因数# 2021-05-17 Luke
while True:
num = input("请输入一个正整数:")
i = 1
num_count = []
while i = int(num):
if int(num) % i == 0:
num_count.append(i)
i += 1
print(num + "的公因数有:")
print(*num_count)
python 8个完数 运算超时?在你的这个思路中,可以优化的主要就是几方面:
1:求因数可以仅算到n的平方根q为止,对于n,每有一个小于q的因数 , 就有一个对应的大于q的因数 , 两者之积为n 。
2:在完数函数中已经完成了求因数的工作,不需要另做一次,直接在完数函数中拼装结果即可 。
3:目前来说,已知的完全数都是偶数,因此,最后那行那里可以做num+=2优化,但数学上目前还没有证明不存在奇完全数,这种做法从理论上来说是不严谨的 。
实际上,当一个数比较大的时候,做因数分解是一个很费时的工作,要找更大的完数,需要更好的因数分解的方式 。比如先求出所有的质因数,在使用这些质因数的组合来寻找非质因数 。因为质因数必然是在质数表中,而质数表可以建立一次然后重复使用,相对一个个的试商就快得多了 。
如果要进一步优化以寻找更大的完全数,那么 , 就需要利用更多的关于完全数的规律了 , 比如,除6以外,其它的完全数都是9n+1,都是p^2*q……,这些优化在你这个框架下实现就比较麻烦 。
总体来说,不解决因数分解的问题,主要就是上述三种优化了 。
【python用函数求因数 python求最大公因数】python用函数求因数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python求最大公因数、python用函数求因数的信息别忘了在本站进行查找喔 。

    推荐阅读