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

Original Code


In [2]:
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

Modified Code


In [3]:
count=0 # We take a count variable that counts the number of prime in the loop. 
for num in range(1,101):
    prime = True
    for i in range(2,num): 
        if (num%i==0):
            prime = False #
    if prime:
        count=count+1 #If the count variable is not divisible by two, only then the number is printed. 
        if (count%2!=0): #Thereby printing only every other prime number. 
            print(num)


1
3
7
13
19
29
37
43
53
61
71
79
89

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


In [5]:
for num in range(1,101):
    if all(num%i!=0 for i in range(2,num)):
        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 [ ]: