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

Python编写prime_partition函数实现指定数量无重复素数拆分对

素数拆分函数修正方案

原代码问题分析

  • 数量控制逻辑错误:原代码中while len(result) >=k: break仅能跳出while本身,无法终止外层for循环,且打印逻辑放在循环内部,会反复输出中间结果,也没有指定返回值。
  • 逆序重复问题:循环遍历范围覆盖了1到n的全部区间,当i超过n/2时,就会生成和前半段逆序的重复素数对。

修正后代码

# 素数判断工具函数,如已有实现可直接忽略
def isprime(num):
    if num < 2:
        return False
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            return False
    return True

def prime_partition(n, k):
    result = []
    # 遍历上限设为n//2,保证i <= n-i,避免逆序重复
    for i in range(2, n // 2 + 1):
        if isprime(i) and isprime(n - i):
            result.append([i, n - i])
            # 收集到指定数量后直接终止循环
            if len(result) >= k:
                break
    return result

调用效果

输入prime_partition(100, 6)将返回:
[[3, 97], [11, 89], [17, 83], [29, 71], [41, 59], [47, 53]]
完全符合仅返回6组无重复素数对的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:36:04