list = [] #存放计算的结果 list1 = [] #存放质数 n = int(input("计算质数2:")) for i in range(2,n+1): #范围在2-n内 for j in range(2,i): list.append(i%j) if 0 not in list: list1.append(i) list=[] print(list1) 正好在研究这个问题,怎么说呢,感觉这个是正解,runoob网站有这个案例,和楼下类似,但是是错的,运行你会发现9、15这类都是质数。而质数都定义,简单来说,就是大于1的自然数,只能被1和自己整除,9、15明显不是。网站的案例,当自然数为9时,此时通过9%2=1判定9为质数,然后第二次循环判定时(此时是9%3=0),此时9又不是质数了。总的来说,但凡像9、15、21这种类型不是质数的奇数,因为第一次都是和2判定无法被整除,所以都会被判定质数。 正确的做法是,将所有取余的结果存入列表,判定其中是否有为0的情况,如果有则不是质数,反之则是。