Check if a number is odd or even in python [duplicate]
Solution 1:
if num % 2 == 0:
pass # Even
else:
pass # Odd
The %
sign is like division only it checks for the remainder, so if the number divided by 2
has a remainder of 0
it's even otherwise odd.
Or reverse them for a little speed improvement, since any number above 0 is also considered "True" you can skip needing to do any equality check:
if num % 2:
pass # Odd
else:
pass # Even
Solution 2:
Similarly to other languages, the fastest "modulo 2" (odd/even) operation is done using the bitwise and
operator:
if x & 1:
return 'odd'
else:
return 'even'
Using Bitwise AND operator
- The idea is to check whether the last bit of the number is set or not. If last bit is set then the number is odd, otherwise even.
- If a number is odd
&
(bitwise AND) of the Number by 1 will be 1, because the last bit would already be set. Otherwise it will give 0 as output.