按升序输出2~300间的素数并按降序输出2~300间非素数
旁边最好能有注释为什么这么改,谢谢啦
只要改后面两处就可以,如果第一处也算错误的话,可能题目意思2到300之间应该包括300?
import math
primes = []
notprimes = []
for i in range(2,301): # 如果包括300的话需要改成301
for j in range(2, int(math.sqrt(i)) + 1):
if i %j ==0:
notprimes.insert(0, i) # insert方法要给两个参数,表示在数组[0]的位置插入i,也就是逆序插入
break
else:
primes.append(i)
print("2 ~ 300间的素数为:",end ="")
print(primes) # 使用[::1]是倒序输出列表,题目要求正序,所以不需要
print("300 ~ 2间的非素数为:{}".format(notprimes))