Bird
Raised Fist0
DSA Pythonprogramming~20 mins

Check if Number is Even or Odd Using Bits in DSA Python - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Bitwise Even-Odd Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this code using bitwise AND to check even or odd?
Look at the code below. It uses bitwise AND to check if a number is even or odd. What will it print?
DSA Python
def check_even_odd(num):
    if num & 1 == 0:
        print(f"{num} is Even")
    else:
        print(f"{num} is Odd")

check_even_odd(10)
check_even_odd(7)
A10 is Even\n7 is Odd
B10 is Odd\n7 is Even
C10 is Odd\n7 is Odd
D10 is Even\n7 is Even
Attempts:
2 left
💡 Hint
Remember, bitwise AND with 1 checks the last bit of the number.
❓ Predict Output
intermediate
2:00remaining
What is the output of this function for negative numbers?
This function uses bitwise AND to check even or odd. What will it print for -4 and -3?
DSA Python
def check_even_odd(num):
    if num & 1 == 0:
        print(f"{num} is Even")
    else:
        print(f"{num} is Odd")

check_even_odd(-4)
check_even_odd(-3)
A-4 is Odd\n-3 is Odd
B-4 is Even\n-3 is Odd
C-4 is Odd\n-3 is Even
D-4 is Even\n-3 is Even
Attempts:
2 left
💡 Hint
Bitwise AND works the same for negative numbers in two's complement.
🧠 Conceptual
advanced
2:00remaining
Why does bitwise AND with 1 check if a number is even or odd?
Choose the best explanation why num & 1 == 0 means the number is even.
ABecause bitwise AND with 1 converts the number to its negative form.
BBecause bitwise AND with 1 counts the total number of bits in the number.
CBecause bitwise AND with 1 shifts the number to the right by one bit.
DBecause the last bit of an even number is always 0, so AND with 1 results in 0.
Attempts:
2 left
💡 Hint
Think about binary representation of even and odd numbers.
🔧 Debug
advanced
2:00remaining
What error does this code raise?
Look at this code that tries to check even or odd using bits. What error will it raise?
DSA Python
def check_even_odd(num):
    if num & 1 = 0:
        print(f"{num} is Even")
    else:
        print(f"{num} is Odd")

check_even_odd(5)
ANameError
BTypeError
CSyntaxError
DNo error, prints '5 is Odd'
Attempts:
2 left
💡 Hint
Check the operator used in the if condition.
🚀 Application
expert
2:00remaining
How many numbers between 1 and 10 (inclusive) are identified as odd by this bitwise check?
Using the bitwise check num & 1 == 1 to find odd numbers, how many numbers between 1 and 10 (including both) will be identified as odd?
DSA Python
count = 0
for num in range(1, 11):
    if num & 1 == 1:
        count += 1
print(count)
A5
B6
C4
D10
Attempts:
2 left
💡 Hint
Count how many numbers have last bit 1 between 1 and 10.

Practice

(1/5)
1. What does the expression num & 1 check when determining if a number is even or odd?
easy
A. It checks if the least significant bit of num is 1, indicating odd number.
B. It checks if the number is greater than 1.
C. It shifts the bits of num to the right by 1.
D. It adds 1 to the number.

Solution

  1. Step 1: Understand bitwise AND operation

    The expression num & 1 performs a bitwise AND between num and 1, which isolates the least significant bit (rightmost bit) of num.
  2. Step 2: Interpret the least significant bit

    If the least significant bit is 1, the number is odd; if it is 0, the number is even.
  3. Final Answer:

    It checks if the least significant bit of num is 1, indicating odd number. -> Option A
  4. Quick Check:

    num & 1 = 1 means odd [OK]
Hint: Check last bit with & 1; 1 means odd, 0 means even [OK]
Common Mistakes:
  • Thinking & 1 shifts bits instead of checking last bit
  • Confusing bitwise AND with addition
  • Assuming & 1 checks if number > 1
2. Which of the following Python code snippets correctly checks if a number n is even using bitwise operators?
easy
A. if n | 1 == 0: print('Even')
B. if n & 0 == 1: print('Even')
C. if n & 1 == 0: print('Even')
D. if n ^ 1 == 0: print('Even')

Solution

  1. Step 1: Analyze each bitwise operation

    if n & 1 == 0: print('Even') uses n & 1 == 0, which checks if the least significant bit is 0, meaning even number. The other options use incorrect bitwise operations or comparisons.
  2. Step 2: Confirm correct syntax and logic

    if n & 1 == 0: print('Even') correctly uses bitwise AND and compares to zero to detect even numbers.
  3. Final Answer:

    if n & 1 == 0: print('Even') -> Option C
  4. Quick Check:

    n & 1 == 0 means even [OK]
Hint: Use 'if n & 1 == 0' to check even numbers [OK]
Common Mistakes:
  • Using bitwise OR or XOR instead of AND
  • Comparing with wrong values like 1 instead of 0
  • Misplacing parentheses causing syntax errors
3. What will be the output of the following code?
def check_even_odd(num):
    if num & 1:
        return 'Odd'
    else:
        return 'Even'

print(check_even_odd(10))
print(check_even_odd(7))
medium
A. Odd Odd
B. Even Odd
C. Odd Even
D. Even Even

Solution

  1. Step 1: Evaluate check_even_odd(10)

    10 in binary ends with 0, so 10 & 1 = 0, condition is false, returns 'Even'.
  2. Step 2: Evaluate check_even_odd(7)

    7 in binary ends with 1, so 7 & 1 = 1, condition is true, returns 'Odd'.
  3. Final Answer:

    Even Odd -> Option B
  4. Quick Check:

    10 even, 7 odd [OK]
Hint: num & 1 true means odd, false means even [OK]
Common Mistakes:
  • Confusing return values for even and odd
  • Misreading bitwise AND result
  • Assuming & 1 returns boolean instead of int
4. Find the error in the following code that tries to print whether a number is even or odd using bits:
def is_even(num):
    if num & 1 = 0:
        return True
    else:
        return False

print(is_even(4))
medium
A. Using single '=' instead of '==' in the if condition
B. Using bitwise AND instead of bitwise OR
C. Missing colon after function definition
D. Incorrect indentation of return statements

Solution

  1. Step 1: Identify syntax error in if condition

    The condition uses single '=' which is assignment, not comparison. It should be '==' to compare values.
  2. Step 2: Confirm correct syntax for comparison

    Changing '=' to '==' fixes the syntax error and allows the function to work as intended.
  3. Final Answer:

    Using single '=' instead of '==' in the if condition -> Option A
  4. Quick Check:

    Use '==' for comparison, not '=' [OK]
Hint: Use '==' for comparison in if statements [OK]
Common Mistakes:
  • Using '=' instead of '==' in conditions
  • Confusing bitwise AND with OR
  • Ignoring syntax errors causing runtime failure
5. You want to filter a list of integers and keep only the odd numbers using bitwise operations. Which of the following code snippets correctly achieves this?
hard
A. odds = [x for x in numbers if x ^ 1 == 1]
B. odds = [x for x in numbers if x & 1 == 0]
C. odds = [x for x in numbers if x | 1 == 1]
D. odds = [x for x in numbers if x & 1 == 1]

Solution

  1. Step 1: Understand filtering condition for odd numbers

    Odd numbers have least significant bit 1, so x & 1 == 1 filters odd numbers.
  2. Step 2: Check each option's logic

    odds = [x for x in numbers if x & 1 == 1] correctly filters odd numbers. odds = [x for x in numbers if x & 1 == 0] filters even numbers. Options C and D use incorrect bitwise operations for this purpose.
  3. Final Answer:

    odds = [x for x in numbers if x & 1 == 1] -> Option D
  4. Quick Check:

    Filter odds with x & 1 == 1 [OK]
Hint: Use list comprehension with 'x & 1 == 1' to get odd numbers [OK]
Common Mistakes:
  • Using 'x & 1 == 0' which filters even numbers
  • Using bitwise OR or XOR incorrectly
  • Forgetting to compare with 1 explicitly
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