📖 Scenario: You are helping a friend who wants to know if a number is prime. A prime number is a number greater than 1 that has no divisors other than 1 and itself.Imagine you are checking if a number of candies can be evenly split among friends without leftovers. If it can, the number is not prime.
🎯 Goal: Build a simple program that checks if a given number is prime and prints the result.
📋 What You'll Learn
Create an integer variable called number with the value 29.
Create a boolean variable called isPrime and set it to true initially.
Use a for loop with variable i starting from 2 up to number - 1 to check divisibility.
Inside the loop, if number is divisible by i, set isPrime to false and break the loop.
After the loop, print "29 is prime" if isPrime is true, otherwise print "29 is not prime".
💡 Why This Matters
🌍 Real World
Checking if a number is prime is useful in cryptography, coding puzzles, and math problems.
💼 Career
Understanding loops, conditionals, and boolean flags is essential for programming and algorithm development.
Progress0 / 4 steps
1
Create the number variable
Create an integer variable called number and set it to 29.
DSA C#
Hint
Use int number = 29; to create the variable.
2
Create the isPrime variable
Create a boolean variable called isPrime and set it to true.
DSA C#
Hint
Use bool isPrime = true; to create the variable.
3
Check divisibility with a for loop
Use a for loop with variable i starting from 2 up to number - 1. Inside the loop, if number % i == 0, set isPrime to false and break the loop.
DSA C#
Hint
Use a for loop and check if number is divisible by i.
4
Print the result
Print "29 is prime" if isPrime is true, otherwise print "29 is not prime".
DSA C#
Hint
Use if (isPrime) to decide what to print.
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.