A prime number is a number greater than 1 that has no 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.
Click to reveal answer
beginner
What is the first step in checking if a number is prime?
Check if the number is less than or equal to 1. If yes, it is not prime.
Click to reveal answer
beginner
In C#, how do you write a loop to check divisors from 2 up to the square root of a number?
Use a for loop: for (int i = 2; i <= Math.Sqrt(number); i++) { ... }
Click to reveal answer
beginner
What should the function return if it finds a divisor of the number?
It should return false immediately because the number is not prime.
Click to reveal answer
Which number is NOT prime?
A4
B2
C3
D5
✗ Incorrect
4 is not prime because it can be divided by 2.
What is the smallest prime number?
A0
B2
C3
D1
✗ Incorrect
2 is the smallest prime number because it is greater than 1 and only divisible by 1 and itself.
Why do we return false as soon as we find a divisor?
ABecause we want to continue checking
BBecause the number is prime
CBecause the number is not prime
DBecause the divisor is 1
✗ Incorrect
Finding a divisor means the number is not prime, so we stop checking and return false.
Which of these numbers is prime?
A17
B15
C9
D21
✗ Incorrect
17 is prime because it has no divisors other than 1 and itself.
What is the time complexity of checking primality by testing divisors up to the square root?
AO(n)
BO(log n)
CO(n^2)
DO(sqrt(n))
✗ Incorrect
Checking divisors up to the square root of n takes O(sqrt(n)) time.
Explain step-by-step how to check if a number is prime.
Think about the smallest divisors and when to stop checking.
You got /5 concepts.
Describe why checking divisors only up to the square root is enough when testing primality.
Consider the multiplication pairs of factors.
You got /3 concepts.
Practice
(1/5)
1. What does it mean for a number to be prime?
easy
A. It is an even number greater than 2.
B. It is divisible by 2 only.
C. It has exactly two distinct positive divisors: 1 and itself.
D. It has more than two divisors.
Solution
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.
Step 2: Compare options with definition
It has exactly two distinct positive divisors: 1 and itself. matches this definition exactly, while others do not.
Final Answer:
It has exactly two distinct positive divisors: 1 and itself. -> Option C
Quick Check:
Prime number = two divisors [OK]
Hint: Prime means only divisible by 1 and itself [OK]
Common Mistakes:
Thinking even numbers are always prime
Confusing prime with odd numbers
Believing prime numbers have multiple divisors
2. Which of the following C# code snippets correctly checks if a number n is prime?
easy
A. for (int i = 2; i <= n / 2; i++) { if (n % i == 0) return false; } return true;
B. for (int i = 1; i < n; i++) { if (n % i == 0) return false; } return true;
C. for (int i = 2; i < n; i++) { if (n % i == 1) return false; } return true;
D. for (int i = 2; i <= n; i++) { if (n % i == 0) return true; } return false;
Solution
Step 1: Analyze the loop range and condition
for (int i = 2; i <= n / 2; i++) { if (n % i == 0) return false; } return true; checks divisors from 2 up to n/2, which is sufficient to find factors for primality.
Step 2: Check the modulo condition and return values
for (int i = 2; i <= n / 2; i++) { if (n % i == 0) return false; } return true; returns false if a divisor is found, otherwise true, correctly identifying primes.
Final Answer:
for (int i = 2; i <= n / 2; i++) { if (n % i == 0) return false; } return true; -> Option A
Quick Check:
Loop 2 to n/2 and check divisibility [OK]
Hint: Check divisors from 2 to n/2 for efficiency [OK]
Common Mistakes:
Starting loop from 1 instead of 2
Checking modulo equals 1 instead of 0
Returning true inside the loop incorrectly
3. What is the output of the following C# code when n = 11?
bool IsPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i <= Math.Sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
}
Console.WriteLine(IsPrime(11));
medium
A. False
B. Runtime error
C. Compile error
D. True
Solution
Step 1: Understand the prime check logic
The function returns false if n <= 1, else checks divisors from 2 to sqrt(n). For 11, sqrt(11) ~ 3.3, so loop checks i=2,3.
Step 2: Check divisibility for n=11
11 % 2 != 0 and 11 % 3 != 0, so loop completes without returning false, function returns true.
Final Answer:
True -> Option D
Quick Check:
11 is prime, so output is True [OK]
Hint: Check divisors only up to square root [OK]
Common Mistakes:
Not using Math.Sqrt and checking too many numbers
Returning false for prime numbers
Confusing output with string instead of boolean
4. Identify the error in this C# code snippet for checking if n is prime:
bool IsPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i < n / 2; i++) {
if (n % i == 0) return false;
}
return true;
}
medium
A. Loop should use <= instead of < to include n/2
B. Check for n <= 1 should be after the loop
C. Return true should be inside the loop
D. Loop should run up to Math.Sqrt(n) for efficiency
Solution
Step 1: Test with n=4
n/2 = 2 (integer division), loop i=2 < 2 is false, loop skipped, returns true incorrectly (4 is not prime).
Step 2: Identify the fix
Change to i <= n/2 includes i=2 when n/2=2, checking 4 % 2 == 0 and returning false.
Final Answer:
Loop should use <= instead of < to include n/2 -> Option A
Quick Check:
For n=4, i <= n/2 checks divisor 2 [OK]
Hint: Use <= n/2 to include boundary divisor check [OK]
Common Mistakes:
Using < instead of <= for loop upper bound
Returning true inside the loop prematurely
Checking n <= 1 after the loop
5. You want to check if a large number n is prime efficiently. Which approach below is best to implement in C#?
hard
A. Check divisibility from 2 to n-1 using a for loop
B. Check divisibility from 2 to Math.Sqrt(n) using a for loop
C. Check divisibility from 2 to n/2 using a for loop
D. Check divisibility only by 2 and 3
Solution
Step 1: Understand the efficiency of divisor checking
Checking all numbers up to n-1 or n/2 is slow for large n.
Step 2: Use mathematical property to limit checks
Any factor larger than sqrt(n) pairs with a smaller factor, so checking up to sqrt(n) suffices.
Step 3: Evaluate options
Check divisibility from 2 to Math.Sqrt(n) using a for loop uses sqrt(n) limit, which is efficient and correct. Check divisibility only by 2 and 3 is incomplete as primes can have other factors.
Final Answer:
Check divisibility from 2 to Math.Sqrt(n) using a for loop -> Option B
Quick Check:
Use sqrt(n) limit for best prime check [OK]
Hint: Limit divisor checks to square root of number [OK]
Common Mistakes:
Checking too many numbers causing slow code
Only checking 2 and 3 misses other factors
Not handling edge cases like n <= 1
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.