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

如何修复质数三角形打印问题?代码输出含合数而非目标质数

修复质数三角形打印代码

原代码问题分析

  1. 质数判断逻辑错误:仅检查数字能否被2整除,若不能则直接判定为质数,忽略了3、5等其他因数,导致9、25这类合数被误判。
  2. 重复初始化变量:每次外层循环都重置n=3,无法持续生成后续的质数,行数增加时无法正确获取下一个质数。
  3. 打印格式问题:每行末尾会多一个多余的空格。

修复后的代码

def is_prime(num):
    if num < 2:
        return False
    for k in range(2, int(num ** 0.5) + 1):
        if num % k == 0:
            return False
    return True

# 生成足够的质数列表
primes = []
current = 2
# 这里15对应range(15)的行数需求,可根据实际需要调整
while len(primes) < 15:
    if is_prime(current):
        primes.append(current)
    current += 1

# 打印质数三角形
# 原代码是range(5)对应5行,若要15行则改为range(1,16)
for i in range(1, 6):
    print(' '.join(map(str, primes[:i])))

代码说明

  1. 质数判断函数is_prime:通过检查数字能否被2到其平方根之间的数整除,准确判断质数。
  2. 预生成质数列表:提前生成足够数量的质数,避免重复计算,提升运行效率。
  3. 格式化打印:通过切片获取每行需要的质数,用join方法拼接输出,避免出现末尾多余空格。

内容的提问来源于stack exchange,提问作者Vishal Kumar Paswan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:55:06