python因数分解函数 python因数分解算法

将一个正整数分解质因数 。python3.6问题,输出为空,是哪里出了问题 , 求大神解答第一是函数p(t,l)没有返回,在函数里修改列表l,是不能把结果带回的,还有后面的代码里使用了p(t/h),p函数需要两个参数,另外的代码也有一些问题,分解质因数推荐写成以下的形式
def p(n):
l = []
for i in range(2,n):
if i*in:
break
while n%i==0:
n //= i
l.append(i)
if n!=1:
l.append(n)
return l
i = int(input("请输入一个不小于2的正整数:"))
l = p(i)
print ("".join(['*'+str(l[i]) if i!=0 else str(l[i]) for i in range(len(l))]))
使用python将一个正整数分解质因数 。例如:输入90,打印出90=2*3*3*5 。应该要怎么做?对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可 。
(2)如果nk , 但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步 。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步 。
程序源代码:
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def reduceNum(n):
print '{} = '.format(n),
if not isinstance(n, int) or n = 0 :
print '请输入一个正确的数字 !'
exit(0)
elif n in [1] :
print '{}'.format(n)
while n not in [1] : # 循环保证递归
for index in xrange(2, n + 1) :
if n % index == 0:
n /= index # n 等于 n/index
if n == 1:
print index
else : # index 一定是素数
print '{} *'.format(index),
break
reduceNum(90)
reduceNum(100)
以上实例输出结果为:
90 =2 * 3 * 3 * 5100 =2 * 2 * 5 * 5
求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因数分解函数和python因数分解算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读