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

请解释Python打印1到n素数的print_prime_1_n函数运行机制

代码功能与逐行解释

这段Python代码的作用是打印从1到n(包含n)的所有数中被判定为质数的数,当调用print_prime_1_n(10)时,会输出1、2、3、5、7。下面是逐行拆解:

  1. 函数定义

    def print_prime_1_n(n):
    

    定义一个名为print_prime_1_n的函数,参数n是要检查的数字上限。

  2. 外层遍历循环

    for i in range(1, n+1):
    

    遍历从1到n的每一个数字i(range(1, n+1)是左闭右开区间,所以能包含n)。

  3. 初始化质数标记

    prime = True
    

    先默认当前数字i是质数,用prime变量标记为True。

  4. 内层检查循环

    for j in range(2, i):
    

    遍历从2到i-1的所有数字j,用来检查i是否能被这些数整除——如果能被其中任意一个数整除,i就不是质数。

  5. 整除判定

    if i % j == 0:
        prime = False
        break
    
    • 如果i除以j的余数为0(即i能被j整除),说明i不是质数,把prime改成False。
    • 执行break跳出内层循环,不用再检查其他数字,因为已经确定i不是质数了。
  6. 打印质数

    if prime:
        print(i)
    

    如果遍历完所有j后,prime仍然是True,说明i不能被2到i-1的任何数整除,就打印这个数。

  7. 函数调用

    print_prime_1_n(10)
    

    调用函数,传入参数10,即打印1到10之间被判定为质数的数。

注意:这段代码把1判定为质数,但严格来说1不是质数——因为质数的定义是大于1、只能被1和自身整除的自然数。如果要修正这个问题,可以把外层循环的起始值改成2,或者在打印前加一个i > 1的判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:25:29