#python #python-requests #integer #format #factorization
Вопрос:
Я кодирую эту функцию факторизацией(n)… как показано ниже
def factorization(n):
factor=[]
for i in range(2,n 1):
while n % i == 0:
n = n/i
factor.append(i)
print(factor)
и если вы напишете эту
факторизацию(180) = [2,2,3,3,5]
но я хочу распечатать этот формат:
180 = 2^2 х 3^2 х 5
но я не могу этого сделать. я думаю, что «подсчет списков» полезен, но я не знаю, как правильно использовать количество каждого фактора и форматировать его.
Ответ №1:
Использование ванильного python и некоторого форматирования:
def factorization(n):
factor = []
for i in range(2, n 1):
while n % i == 0:
n = n / i
factor.append(i)
print('*'.join(f'{n}' (f'^{factor.count(n)}' if factor.count(n) > 1 else '') for n in set(factor)))
factorization(180)
С принтами:
2^2*3^2*5
Ответ №2:
Вы можете использовать коллекции.Счетчик: https://docs.python.org/3/library/collections.html#collections.Счетчик
from collections import Counter
counts = Counter(factorization(180))
counts[2]
counts[3]