【python】while循环多个语句

当执行至i=i+1 此时i等于3,进入第一个while循环--i<100 true--进入循环体 此时j还是2么?

如果此时i=3,j=2,进入第二个while循环-- 2=j<=i/j=3/2 false--执行if语句打印 3,是素数,并执行i=i+1 i成为4

当i=4,进入第一个while循环--i<100 true--进入循环体 此时j=2,进入第二个while循环--2=j<=i/j=4/2=2--true--执行if not中i是否整除j语句,i整除j成功,非break,进入j+1语句,此时j=3,执行if(j>i/j)语句,3>(4/3),应该输出4,是素数,但实际上4不是素数。

我哪里想错了 请指教

补充图片
图片描述

图片描述

阅读 5.9k
2 个回答

你好,你的错误出现在,当i=4,j=2时,执行if not中i是否整除j语句,i整除j成功,返回0, 所以执行break.其他的,你应该清楚了

推荐 Pythontutor 可视化一步步调试,你自己就能知道哪里出错了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题