写了一段,判断素数,对于大于2的数,偶数先排除,判断能否被整除,只要依次除到它的一半即可
[code="python"]
prime_numbers = [2]
for i in range(3, 1000):
if i % 2 == 0:
continue
is_prime = True
for q in range(2, i / 2):
if i % q == 0:
is_prime = False
break
if is_prime:
prime_numbers.append(i)
print prime_numbers
[/code]
下面对你的代码,可以优化的地方
[code="python"]
g=[2]
for i in range(3,1000):
g.append(i)
上面这三段,直接写成g = list(range(2, 1000))
for j in range(len(g)): # 这里就不用下标来写了,直接for j in g: 即可以得到每个元素
for q in range(2,g[j]): # range(2, g[i] / 2)
if g[j]%q==0:
g[j]=1
break
t=[]
for i in g:
if i!=1:
t.append(i)
下面四行,可以写成一行 t = [i for i in g if i != 1]
print t
[/code]