一般我们会这样写

# 判断是不是质数
def isZhi(a):
    for i in range(2, a):
        if a % i == 0:
            return False;
        else:
            continue;
    return True

算法优化

# 判断是不是质数
def isZhi(a):
    for i in range(2, int(math.sqrt(a))+1):
        if a % i == 0:
            return False;
        else:
            continue;
    return True

为什么判断到 int(math.sqrt(a))+1 就可以停止了呢?我们来举个栗子

比如 4 这个数字,根号4 = 2,也就是2 * 2 = 4 那就证明除了 1 和 4 本身还有 2 这个数能够被 4 整除

再举个栗子,6这个数字,根号6 = 2.449…
转化为 Int 就是 2, 再加 1 就是 3,但是 range 取不到 3 ,也就是取到 2
,那我们就判断 1,2,到 2 的时候他就不是质数了

再举个例子 9这个数,根号 9 是不是等于 3 ,那我们就判断 1,2,3这3个数,判断到3就停止了(不是质数),后面的数就不用判断了

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐