Question 7
Convert the following English description into code.
- Initialize
n to
be 1000. Initialize numbers to
be a list of numbers from 2 to n, but not including n. - With
results starting
as the empty list, repeat the following as long as numbers contains
any numbers.
- Add the first number in
numbers to
the end of results. - Remove every number in
numbers that
is evenly divisible by (has no remainder when divided by) the number that you had just added to results.
How long is results?
To test your code, when n is
instead 100, the length of results is
25.
代码:
lis = list(range(2,1000))
print lis[0]
res =[]
print len(res)
res.append(lis[0])
while len(lis)>1:
for i in lis:
if i % res[-1]==0:
lis.remove(i)
res.append(lis[0])
print lis
print len(res)
Convert the following English description into code.
- Initialize
nto be 1000. Initializenumbersto be a list of numbers from 2 to n, but not includingn. - With
resultsstarting as the empty list, repeat the following as long asnumberscontains any numbers.- Add the first number in
numbersto the end ofresults. - Remove every number in
numbersthat is evenly divisible by (has no remainder when divided by) the number that you had just added toresults.
- Add the first number in
How long is results?
To test your code, when n is
instead 100, the length of results is
25.
代码:
lis = list(range(2,1000))
print lis[0]
res =[]
print len(res)
res.append(lis[0])
while len(lis)>1:
for i in lis:
if i % res[-1]==0:
lis.remove(i)
res.append(lis[0])
print lis
print len(res)