You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python质因数分解中如何表示素因子重数并生成指定格式输出

质因数分解格式化实现方案

你原有代码已经完成了质因数提取的核心逻辑,仅需补充存储原始输入、统计因子出现次数、格式化字符串三个步骤即可实现需求,以下是完整修改后的代码:

from collections import Counter

def factorization(n):
    # 存储原始输入值,避免计算过程中被覆盖
    original_input = n
    factors = []
    # 优化循环上限到平方根+1,大幅提升大数值计算效率
    for i in range(2, int(n**0.5) + 2):
        while n % i == 0:
            # 用整数除法避免生成浮点数
            n = n // i
            factors.append(i)
    # 处理剩余的大于1的质数因子
    if n > 1:
        factors.append(n)
    
    # 统计每个质因数的出现次数
    count_map = Counter(factors)
    
    # 拼接因子表达式
    factor_terms = []
    for val, cnt in count_map.items():
        if cnt == 1:
            factor_terms.append(str(val))
        else:
            factor_terms.append(f"{val}^{cnt}")
    
    # 生成最终输出字符串并打印
    output = f"{original_input} = {' × '.join(factor_terms)}"
    print(output)
    return output

调用factorization(180)将直接输出你需要的格式:180 = 2^2 × 3^2 × 5。

如果不想导入模块依赖,可以用字典手动实现计数逻辑,替换Counter部分代码即可:

# 无依赖的手动计数实现
count_map = {}
for f in factors:
    count_map[f] = count_map.get(f, 0) + 1

内容的提问来源于stack exchange,提问作者hwanju song

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:27:01