请问python怎么分解质因数时输出的结果降序排列啊

python自动输出的是升序排列的,例如90=2335怎么让能输出结果90=5332呢

从大到小循环寻找因数
或者在结果的时候倒排序一下

def prime_factors(n):
    i = 2
    factors = []
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            factors.append(i)
    if n > 1:
        factors.append(n)
    return factors

def format_factors(n):
    factors = prime_factors(n)
    count_dict = {}
    for factor in factors:
        count_dict[factor] = count_dict.get(factor, 0) + 1
    sorted_factors = sorted(count_dict.items(), key=lambda x: x[0], reverse=True)
    return '*'.join([f"{factor[0]}{'^'+str(factor[1]) if factor[1]>1 else ''}" for factor in sorted_factors])

num = 90
factors_string = format_factors(num)
print(f"{num}={factors_string}")