底数相同的数字

问题描述 投票:0回答:2

我对python很陌生,需要帮助;我建立了一个程序,可以找到数字的主要因素,例如:输入:64输出:[2, 2, 2, 2, 2, 2](因子存储在列表中)但我想以相同的底数加入数字,并以以下形式编写它们:64 = (2^6)360 = (2^3)*(3^2)*5

我不知道该怎么做,有人可以帮我吗?

python list exponent
2个回答
0
投票

您可以尝试这个

num = 1
seen = []
for i in factors:
    if i not in seen:
        num = num *  ((i) ** factors.count(i))
        seen.append(i)
print(num)

0
投票

您要寻找的类型是Counter模块中的collections

用法非常简单:

from collections import Counter

dividers_counter = Counter(dividers)

它将分隔符作为键,将出现次数作为值:Counter({2: 3, 3: 2})


0
投票

简单地说,使用示例中的第一个列表:

[2, 2, 2, 2, 2, 2]

代码可能是:

l = [2, 2, 2, 2, 2, 2]
res = str(l[0]) + "^" + str(len(l))
print(res)

提供:

2^6
© www.soinside.com 2019 - 2024. All rights reserved.