Bird
Raised Fist0
DSA Pythonprogramming~5 mins

Sieve of Eratosthenes Find All Primes in DSA Python - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
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
When marking multiples of a prime p, from which number should you start marking?
Ap * p
Bp + 1
Cp * 2
D1
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
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
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
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

      1. Step 1: Understand the algorithm's goal

        The Sieve of Eratosthenes is designed to identify prime numbers efficiently.
      2. Step 2: Recognize the output

        It marks multiples of primes as non-prime, leaving primes unmarked up to the limit.
      3. Final Answer:

        To find all prime numbers up to a given limit -> Option A
      4. 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

      1. Step 1: Understand sieve initialization

        The sieve list should mark all numbers as potentially prime initially, so all True.
      2. Step 2: Check correct length

        It must include index n, so length is n+1.
      3. Final Answer:

        sieve = [True] * (n+1) -> Option C
      4. 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

      1. Step 1: Initialize sieve and mark 0,1 as non-prime

        Indices 0 and 1 are set to False, others True initially.
      2. 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.
      3. Step 3: Collect primes

        Numbers with True are 2,3,5,7.
      4. Final Answer:

        [2, 3, 5, 7] -> Option B
      5. 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

      1. Step 1: Check inner loop start index

        Starting from i*2 marks some multiples multiple times, inefficient.
      2. Step 2: Correct start is i*i

        Because smaller multiples are already marked by smaller primes.
      3. Final Answer:

        Inner loop should start from i*i, not i*2 -> Option A
      4. 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

      1. Step 1: List primes up to 30 using sieve logic

        Primes are 2,3,5,7,11,13,17,19,23,29.
      2. Step 2: Count the primes

        Count is 10 primes between 1 and 30 inclusive.
      3. Final Answer:

        10 -> Option D
      4. 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 unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard