Rozkład w postaci potęg

Rozkład liczby na czynniki pierwsze - Algorytmy: zakres rozszerzony (Python)

Powtarzające się czynniki zapisuje się jako potęgi: 360 = 2^3 * 3^2 * 5. Słownik zlicza, ile razy każdy czynnik wystąpił w rozkładzie.

def factorize(n):
    factors = []
    d = 2
    while d * d <= n:
        while n % d == 0:
            factors.append(d)
            n //= d
        d += 1
    if n > 1:
        factors.append(n)
    return factors


counts = {}
for f in factorize(360):
    counts[f] = counts.get(f, 0) + 1
parts = []
for f, k in counts.items():
    parts.append(str(f) if k == 1 else f"{f}^{k}")
print("360 =", " * ".join(parts))

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Algorytmy: zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.