鱼C论坛

 找回密码
 立即注册
查看: 43|回复: 1

[已解决]代码出问题了...

[复制链接]
发表于 6 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. i = 3
  2. while i < 10:
  3.     y = 2
  4.     while y < i:
  5.         if i % y != 0:
  6.             y += 1
  7.         else:
  8.             print(i,'=',i,'*',y)
  9.             y = 2
  10.         i += 1
  11.     else:
  12.         print(i,'是个素数')
  13. i += 1
复制代码

这是一段我写的判断3-10是不是素数的代码,但是在我的编辑器里面运行不了,我看了好久也没找到问题在哪 QQ20260311-151921.png ,他没有报错我没找到问题在哪,有点懵。
最佳答案
6 小时前
你的代码主要问题在于循环控制变量 i 在内层循环中被修改,导致外层循环陷入无限迭代。具体来说,当 i 是素数时,内层循环结束后没有增加 i 的值,因此外层循环条件一直满足,程序卡住。

以下是修正后的代码,使用 while-else 结构来正确判断素数:


  1. i = 3
  2. while i < 10:
  3.     y = 2
  4.     while y < i:
  5.         if i % y == 0:
  6.             print(i, '=', y, '*', i // y)
  7.             break
  8.         y += 1
  9.     else:
  10.         print(i, '是个素数')
  11.     i += 1
复制代码


主要改动:
1. 将内层循环中的 i += 1 移除,改为在外层循环结束后统一增加 i
2. 在内层循环发现整除时使用 break 提前退出,这样 else 块只在内层循环完整执行(即没有发现因子)时运行,表示 i 是素数。
3. 修正了打印分解式的格式,使用 i // y 显示另一个因子。

运行这段修正后的代码,会输出 3 到 9 每个数的素数判断结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 6 小时前 | 显示全部楼层    本楼为最佳答案   
你的代码主要问题在于循环控制变量 i 在内层循环中被修改,导致外层循环陷入无限迭代。具体来说,当 i 是素数时,内层循环结束后没有增加 i 的值,因此外层循环条件一直满足,程序卡住。

以下是修正后的代码,使用 while-else 结构来正确判断素数:


  1. i = 3
  2. while i < 10:
  3.     y = 2
  4.     while y < i:
  5.         if i % y == 0:
  6.             print(i, '=', y, '*', i // y)
  7.             break
  8.         y += 1
  9.     else:
  10.         print(i, '是个素数')
  11.     i += 1
复制代码


主要改动:
1. 将内层循环中的 i += 1 移除,改为在外层循环结束后统一增加 i
2. 在内层循环发现整除时使用 break 提前退出,这样 else 块只在内层循环完整执行(即没有发现因子)时运行,表示 i 是素数。
3. 修正了打印分解式的格式,使用 i // y 显示另一个因子。

运行这段修正后的代码,会输出 3 到 9 每个数的素数判断结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-11 22:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表