我这个错哪了

来源:3-26 综合训练:判断1000内的质数

慕的地7028619

2019-08-03 18:00:30

j = 2
is_prime = True
while j <= 1000:
   i = 2
   while i < j:
       if j%i == 0:
           is_prime = False
           break
       i += 1
   j += 1
   if is_prime == False:
       print('{}不是质数'.format(j))
   if is_prime == True:
       print('{}是质数'.format(j))

写回答

1回答

时间,

2019-08-04

同学,你好。

1、同学写的j+=1的位置是在print输出语句前,因此j的值会比内层循环中的j的值大1,输出的j值不对。需要先判断is_prime的值并进行输出,再修改j的值

2、修改第一个错误后,当j值为6时,is_prime为False,输出6不是质数。执行下一次while循环,j=7,此时,is_prime的值为False,因此输出7不是质数。需要在外层循环中将is_prime的值重新赋值为True。

http://img.mukewang.com/climg/5d465770000134d305670536.jpg

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

0

0 学习 · 8160 问题

查看课程