Python 2.7 python中素因子分解的指数形式

Python 2.7 python中素因子分解的指数形式,python-2.7,Python 2.7,我必须以指数形式将正整数转换为它的素因子分解形式。例如:[(2,1),(5,1)]是上面定义的10的正确素因式分解。 我有下面的代码来生成因子。现在我应该让它们素数,并且应该以元组的形式返回它们的指数。请帮帮我 def primes(n): divisors = [ d for d in range(2,n//2+1) if n % d == 0] return divisors 您可以直接遵循以下方法,即时间复杂度O(n^

我必须以指数形式将正整数转换为它的素因子分解形式。例如:[(2,1),(5,1)]是上面定义的10的正确素因式分解。 我有下面的代码来生成因子。现在我应该让它们素数,并且应该以元组的形式返回它们的指数。请帮帮我

         def primes(n):
             divisors = [ d for d in range(2,n//2+1) if n % d == 0]
             return divisors

您可以直接遵循以下方法,即时间复杂度O(n^(1/2))

         # n is the number to be factorized
         # this list holds your desired answer 
         prime_factors = []
         # this variable iterates over prime
         start = 2
         while start*start <= n:
              if n % start == 0:
                 expo = 0
                 while n % start == 0:
                     expo = expo + 1
                     n = n / start
                 prime_factors.append([start,expo])
         if n > 1:
             prime_factors.append([n,1])
         print prime_factors
#n是要分解的数字
#这个列表包含你想要的答案
素数因子=[]
#这个变量在素数上迭代
开始=2
启动时*启动1:
素因子。追加([n,1])
打印素数因子
这是一个简单的迭代方法。这里是运行版本。单击右上角(fork)在您的测试用例上运行
n=10。也可以在别人上运行。

最后你想用它们的指数来求素因子吗?是的,例如:10是我们的数字,结果应该是2 ^,1 ^ 1。看看我的答案中的链接。如果回答了你的问题,你可以考虑接受答案。如果您有疑问,可以发表评论。