|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
n=eval(input('输入'))
i=2
while (i<=n-1):
if n%i==0:
print(n,'不是素数(while)')
break
i=i+1
else:
print(n,'是素数(while)')
为什么去掉break 或者i=i+1 就不运行了?
当你输入 6 时,这个程序会按照以下步骤执行:
- n = 6,i = 2
- 进入 while 循环,判断条件是:(i <= n - 1),因为 2 <= 5,满足条件,所以进入循环。
- 在循环内部,检查 n % i == 0(6 % 2 == 0),这个条件满足,所以会打印 "6 不是素数(while)"。
- 然后执行 break,跳出 while 循环。
- 结束程序。
这个程序中的 while 循环实际上是在执行。在每次循环过程中,它会检查 n 是否能被 i 整除。在循环内,n 的值确实是固定的,
但 i 的值会在每次循环时递增(通过 i = i + 1)。这样可以让程序检查 n 是否能被从 2 到 n-1 之间的所有整数整除。
对于输入的 6,程序执行过程如下:
- 第一次循环:i = 2,6 % 2 == 0,所以输出 "6 不是素数(while)",然后跳出循环。
- 如果输入的是素数(如 7),循环会一直执行到 i = 6,因为 7 不会被 2 到 6 之间的任何整数整除。在这种情况下,程序会执行 while 循环的 else 部分并输出 "7 是素数(while)"。
总结一下,while 循环确实在执行,而且 i 的值在每次循环中递增,以检查 n 是否能被 2 到 n-1 之间的整数整除。
|
|