What is the main idea behind the Sieve of Eratosthenes?
It is a method to find all prime numbers up to a certain limit by repeatedly marking the multiples of each prime number starting from 2.
Click to reveal answer
intermediate
Why do we start marking multiples from the square of the current prime in the Sieve of Eratosthenes?
Because all smaller multiples of the prime have already been marked by smaller primes, so starting from the square avoids redundant work.
Click to reveal answer
beginner
In the Sieve of Eratosthenes, what data structure is commonly used to keep track of prime candidates?
A list or array of boolean values where each index represents a number and the value indicates if it is prime (True) or not (False).
Click to reveal answer
intermediate
What is the time complexity of the Sieve of Eratosthenes algorithm?
The time complexity is approximately O(n log log n), which is efficient for finding primes up to large numbers.
Click to reveal answer
beginner
How does the Sieve of Eratosthenes differ from checking primality by trial division?
The sieve finds all primes up to a limit at once by marking multiples, while trial division checks each number individually by dividing by smaller numbers.
Click to reveal answer
What number do you start with when using the Sieve of Eratosthenes to find primes?
A3
B1
C0
D2
✗ Incorrect
The sieve starts from 2, the smallest prime number.
When marking multiples of a prime p, from which number should you start marking?
Ap * p
Bp + 1
Cp * 2
D1
✗ Incorrect
Start marking from p squared to avoid marking multiples already handled by smaller primes.
What does a True value in the sieve's boolean list represent?
AThe number is prime
BThe number is composite
CThe number is even
DThe number is odd
✗ Incorrect
True means the number is still considered prime.
Which of these is NOT a step in the Sieve of Eratosthenes?
AMark multiples of primes as not prime
BCheck divisibility of each number by all smaller numbers
CStart from 2 and go up to the square root of the limit
DReturn all numbers still marked as prime
✗ Incorrect
The sieve does not check divisibility individually; it marks multiples instead.
What is the main advantage of the Sieve of Eratosthenes over checking each number individually?
AIt uses less memory
BIt does not require any loops
CIt finds all primes up to a limit efficiently
DIt works only for small numbers
✗ Incorrect
The sieve efficiently finds all primes up to a limit by marking multiples.
Explain how the Sieve of Eratosthenes algorithm finds all prime numbers up to a given number.
Think about crossing out multiples step by step.
You got /5 concepts.
Describe why the Sieve of Eratosthenes is more efficient than checking each number's primality by dividing by smaller numbers.
Focus on how the sieve reduces repeated work.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of the Sieve of Eratosthenes algorithm?
easy
A. To find all prime numbers up to a given limit
B. To sort a list of numbers in ascending order
C. To find the greatest common divisor of two numbers
D. To calculate the factorial of a number
Solution
Step 1: Understand the algorithm's goal
The Sieve of Eratosthenes is designed to identify prime numbers efficiently.
Step 2: Recognize the output
It marks multiples of primes as non-prime, leaving primes unmarked up to the limit.
Final Answer:
To find all prime numbers up to a given limit -> Option A
Quick Check:
Sieve of Eratosthenes = Find primes [OK]
Hint: Sieve marks multiples to find primes fast [OK]
Common Mistakes:
Confusing it with sorting algorithms
Thinking it calculates factorials
Assuming it finds divisors instead of primes
2. Which of the following Python code snippets correctly initializes the sieve list for finding primes up to n?
easy
A. sieve = [False] * n
B. sieve = list(range(n))
C. sieve = [True] * (n+1)
D. sieve = [0] * (n-1)
Solution
Step 1: Understand sieve initialization
The sieve list should mark all numbers as potentially prime initially, so all True.
Step 2: Check correct length
It must include index n, so length is n+1.
Final Answer:
sieve = [True] * (n+1) -> Option C
Quick Check:
Initialize all True for 0 to n [OK]
Hint: Use True for all numbers including n [OK]
Common Mistakes:
Using False instead of True initially
Not including n in the list length
Using range instead of boolean list
3. What will be the output of the following code snippet?
n = 10
sieve = [True] * (n+1)
sieve[0], sieve[1] = False, False
for i in range(2, int(n**0.5)+1):
if sieve[i]:
for j in range(i*i, n+1, i):
sieve[j] = False
primes = [i for i in range(n+1) if sieve[i]]
print(primes)
medium
A. [1, 2, 3, 5, 7]
B. [2, 3, 5, 7]
C. [2, 3, 4, 5, 7]
D. [0, 2, 3, 5, 7]
Solution
Step 1: Initialize sieve and mark 0,1 as non-prime
Indices 0 and 1 are set to False, others True initially.
Step 2: Mark multiples of primes as False
For i=2 and i=3 (since sqrt(10) ~3), multiples 4,6,8,9,10 are marked False.
Step 3: Collect primes
Numbers with True are 2,3,5,7.
Final Answer:
[2, 3, 5, 7] -> Option B
Quick Check:
Primes up to 10 = [2,3,5,7] [OK]
Hint: Remember to exclude 0 and 1 as non-prime [OK]
Common Mistakes:
Including 1 as prime
Forgetting to start inner loop at i*i
Marking wrong multiples
4. Identify the error in this Sieve of Eratosthenes code snippet:
n = 15
sieve = [True] * (n+1)
sieve[0], sieve[1] = False, False
for i in range(2, n):
if sieve[i]:
for j in range(i*2, n+1, i):
sieve[j] = False
primes = [i for i in range(n+1) if sieve[i]]
print(primes)
medium
A. Inner loop should start from i*i, not i*2
B. sieve list length should be n, not n+1
C. sieve[0] and sieve[1] should be True
D. Outer loop should run until n+1, not n
Solution
Step 1: Check inner loop start index
Starting from i*2 marks some multiples multiple times, inefficient.
Step 2: Correct start is i*i
Because smaller multiples are already marked by smaller primes.
Final Answer:
Inner loop should start from i*i, not i*2 -> Option A
Quick Check:
Start inner loop at i*i for efficiency [OK]
Hint: Start marking multiples from i squared [OK]
Common Mistakes:
Starting inner loop at i*2 wastes time
Incorrect sieve length causes index errors
Marking 0 or 1 as prime
5. Using the Sieve of Eratosthenes, how many prime numbers are there between 1 and 30 (inclusive)?
hard
A. 8
B. 11
C. 12
D. 10
Solution
Step 1: List primes up to 30 using sieve logic
Primes are 2,3,5,7,11,13,17,19,23,29.
Step 2: Count the primes
Count is 10 primes between 1 and 30 inclusive.
Final Answer:
10 -> Option D
Quick Check:
Count primes ≤30 = 10 [OK]
Hint: Count primes carefully, exclude 1 and non-primes [OK]
Common Mistakes:
Including 1 as prime
Forgetting to include 29
Miscounting primes between 20 and 30
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.