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)