The following code will print the prime numbers between 1 and 100. Modify the code so it prints every other prime number from 1 to 100


In [1]:
# ORIGINAL CODE
for num in range(1,101): # for-loop through the numbers
    prime = True # boolean flag to check the number for being prime
    for i in range(2,num): # for-loop to check for "primeness" by checking for divisors other than 1
        if (num%i==0): # logical test for the number having a divisor other than 1 and itself
            prime = False # if there's a divisor, the boolean value gets flipped to False
    if prime: # if prime is still True after going through all numbers from 1 - 100, then it gets printed
        print(num)


1
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

In [7]:
# MODIFIED CODE -- SOLUTION
all_primes = []
for num in range(1,101): # for-loop through the numbers
    prime = True # boolean flag to check the number for being prime
    for i in range(2,num): # for-loop to check for "primeness" by checking for divisors other than 1
        if (num%i==0): # logical test for the number having a divisor other than 1 and itself
            prime = False # if there's a divisor, the boolean value gets flipped to False
    if prime: # if prime is still True after going through all numbers from 1 - 100, then it gets printed
        all_primes.append(num)

primecount=0
for prime in all_primes:
    primecount = primecount + 1
    if primecount %2 == 0:
        print(prime)


2
5
11
17
23
31
41
47
59
67
73
83
97

Extra Credit: Can you write a procedure that runs faster than the one above?


In [ ]: