Bird
Raised Fist0
DSA Rustprogramming~5 mins

Check if Number is Prime in DSA Rust - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a prime number?
A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself.
Click to reveal answer
intermediate
Why do we only check divisors up to the square root of a number when testing for primality?
Because if a number has a divisor larger than its square root, it must also have a smaller divisor below the square root. So checking up to the square root is enough to find any divisor.
Click to reveal answer
beginner
What is the simplest way to check if a number n is prime in Rust?
Loop from 2 to sqrt(n). If n is divisible by any number in this range, it is not prime. Otherwise, it is prime.
Click to reveal answer
beginner
In Rust, what type should you use for the number when checking primality?
Use an unsigned integer type like u32 or u64 because prime numbers are positive integers.
Click to reveal answer
beginner
What is the output of the Rust function that checks if 17 is prime?
The function returns true because 17 has no divisors other than 1 and 17.
Click to reveal answer
Which number is NOT a prime number?
A2
B17
C9
D13
What is the smallest prime number?
A1
B2
C0
D3
Why do we skip checking divisibility by 1 when testing primality?
ABecause 1 is even
BBecause 1 is not a number
CBecause 1 is prime
DBecause 1 divides every number
In Rust, which loop is best to check divisors from 2 to sqrt(n)?
Afor i in 2..=sqrt_n
Bfor i in 2..n
Cfor i in 2..=n
Dwhile i < n
What does the Rust function return if the input number is 1?
Afalse
Btrue
Cpanic
DNone
Explain how to check if a number is prime using a simple algorithm.
Think about what makes a number prime and how to find divisors efficiently.
You got /4 concepts.
    Describe how you would implement a prime check function in Rust.
    Focus on Rust types and control flow for the implementation.
    You got /5 concepts.

      Practice

      (1/5)
      1. What does it mean for a number to be prime?
      easy
      A. It has more than two divisors.
      B. It is divisible by 2 only.
      C. It is an even number greater than 2.
      D. It has exactly two distinct positive divisors: 1 and itself.

      Solution

      1. Step 1: Understand the definition of prime number

        A prime number is a number greater than 1 that has no divisors other than 1 and itself.
      2. Step 2: Compare options with definition

        Only It has exactly two distinct positive divisors: 1 and itself. correctly states this definition.
      3. Final Answer:

        It has exactly two distinct positive divisors: 1 and itself. -> Option D
      4. Quick Check:

        Prime = two divisors [OK]
      Hint: Prime numbers have only 1 and itself as divisors [OK]
      Common Mistakes:
      • Thinking even numbers are always prime
      • Confusing prime with odd numbers
      • Assuming 1 is prime
      2. Which of the following Rust code snippets correctly checks if a number n is prime?
      easy
      A. for i in 1..n { if n % i == 0 { return false; } } true
      B. for i in 2..n { if n % i == 0 { return false; } } true
      C. for i in 2..=n { if n % i == 0 { return false; } } true
      D. for i in 2..n { if n % i != 0 { return false; } } true

      Solution

      1. Step 1: Analyze the loop range for divisor checking

        We check divisors from 2 up to n-1 (exclusive of n) to find if any divides n.
      2. Step 2: Check each option's loop and condition

        for i in 2..n { if n % i == 0 { return false; } } true correctly loops from 2 to n-1 and returns false if divisor found; others have errors like including n or wrong condition.
      3. Final Answer:

        for i in 2..n { if n % i == 0 { return false; } } true -> Option B
      4. Quick Check:

        Loop 2 to n-1 and check divisibility [OK]
      Hint: Loop from 2 to n-1 to check divisors [OK]
      Common Mistakes:
      • Including n in the loop range
      • Starting loop from 1 instead of 2
      • Using wrong condition for divisibility
      3. What is the output of this Rust function call: is_prime(11)?
      fn is_prime(n: u32) -> bool {
          if n <= 1 { return false; }
          for i in 2..n {
              if n % i == 0 {
                  return false;
              }
          }
          true
      }
      medium
      A. true
      B. false
      C. panic at runtime
      D. compile error

      Solution

      1. Step 1: Check input and loop behavior for n=11

        11 is greater than 1, so the function proceeds to loop from 2 to 10 checking divisibility.
      2. Step 2: Test divisibility of 11 by numbers 2 to 10

        11 is not divisible by any number between 2 and 10, so loop completes without returning false.
      3. Final Answer:

        true -> Option A
      4. Quick Check:

        11 is prime, so function returns true [OK]
      Hint: Prime numbers return true after no divisors found [OK]
      Common Mistakes:
      • Assuming 11 is not prime
      • Confusing loop range
      • Expecting runtime errors incorrectly
      4. Identify the bug in this Rust function that checks if a number is prime:
      fn is_prime(n: u32) -> bool {
          if n < 2 { return false; }
          for i in 2..=n {
              if n % i == 0 {
                  return false;
              }
          }
          true
      }
      medium
      A. Missing return type in function signature
      B. Condition should be n <= 1 instead of n < 2
      C. Loop includes n, causing always false for n > 1
      D. Loop should start from 1 instead of 2

      Solution

      1. Step 1: Analyze the loop range 2..=n

        The loop includes n itself, so n % n == 0 is always true, causing immediate false return.
      2. Step 2: Understand correct loop range

        Loop should be 2..n (exclusive of n) to avoid checking n against itself.
      3. Final Answer:

        Loop includes n, causing always false for n > 1 -> Option C
      4. Quick Check:

        Loop must exclude n to avoid false negatives [OK]
      Hint: Exclude n from divisor loop to avoid false negatives [OK]
      Common Mistakes:
      • Including n in divisor checks
      • Wrong loop start index
      • Misunderstanding return conditions
      5. You want to optimize prime checking for large numbers by only checking divisors up to the square root of n. Which Rust code snippet correctly implements this?
      hard
      A. for i in 2..=((n as f64).sqrt() as u32) { if n % i == 0 { return false; } } true
      B. for i in 2..n { if n % i == 0 { return false; } } true
      C. for i in 2..=(n / 2) { if n % i == 0 { return false; } } true
      D. for i in 1..=((n as f64).sqrt() as u32) { if n % i == 0 { return false; } } true

      Solution

      1. Step 1: Understand optimization using square root

        Checking divisors up to sqrt(n) is enough because larger factors pair with smaller ones.
      2. Step 2: Analyze each option's loop range and correctness

        for i in 2..=((n as f64).sqrt() as u32) { if n % i == 0 { return false; } } true correctly casts n to float, computes sqrt, casts back to u32, and loops up to that value.
      3. Final Answer:

        for i in 2..=((n as f64).sqrt() as u32) { if n % i == 0 { return false; } } true -> Option A
      4. Quick Check:

        Loop up to sqrt(n) for efficient prime check [OK]
      Hint: Check divisors only up to sqrt(n) for efficiency [OK]
      Common Mistakes:
      • Checking divisors beyond sqrt(n)
      • Starting loop from 1 instead of 2
      • Incorrect casting causing errors
      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