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
n
to
be 1000. Initializenumbers
to
be a list of numbers from 2 to n, but not includingn
. - With
results
starting
as the empty list, repeat the following as long asnumbers
contains
any numbers.- Add the first number in
numbers
to
the end ofresults
. - Remove every number in
numbers
that
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)