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

如何实现将输入自然数的因数按首尾配对相乘形式输出?

因数配对实现思路

你已经实现了获取因数列表的find_factors函数,要完成首尾配对输出,可按以下步骤实现:

  • 步骤1:获取有序因数列表
    调用已有的find_factors函数,得到从小到大排列的因数列表,比如输入2048会得到[1,2,4,8,16,32,64,128,256,512,1024,2048]。

  • 步骤2:遍历生成配对
    由于因数列表是有序的,首尾元素相乘等于输入值,只需要遍历列表的前半部分即可。用整数除法len(factors) // 2确定需要配对的次数,每次取索引i的元素和索引len(factors)-1 -i的元素组成配对。

  • 步骤3:格式化并拼接结果
    把每对因数格式化为"{num1} times {num2}"的字符串,再用, 拼接所有字符串,最后加上-->前缀输出。

完整代码示例

def find_factors(user_input):
    factors = []
    for x in range(1, user_input + 1):
        if user_input % x == 0:
            factors.append(x)
    return factors

def print_factor_pairs(n):
    factors = find_factors(n)
    pairs = []
    # 遍历前半部分元素生成配对
    for i in range(len(factors) // 2):
        num1 = factors[i]
        num2 = factors[-i - 1]
        pairs.append(f"{num1} times {num2}")
    # 拼接并输出最终结果
    print(f"--> {', '.join(pairs)}")

# 测试示例
print_factor_pairs(2048)

运行上述代码,输入2048会输出:

--> 1 times 2048, 2 times 1024, 4 times 512, 8 times 256, 16 times 128, 32 times 64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:45:38