Skip to content

Commit 7c7d060

Browse files
add even/odd check
1 parent 5121f9b commit 7c7d060

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

maths/even_check.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
def is_even(number: int) -> bool:
2+
"""
3+
Test if a number is a even number.
4+
:param number: the number to be checked.
5+
:return: True if the number is even, otherwise False.
6+
7+
>>> is_even(-1)
8+
False
9+
>>> is_even(-2)
10+
True
11+
>>> is_even(0)
12+
True
13+
>>> is_even(3)
14+
False
15+
>>> is_even(4)
16+
True
17+
>>> all([is_even(i) for i in range(0, 100, 2)])
18+
True
19+
"""
20+
return number % 2 == 0
21+
22+
23+
def is_even_faster(number: int) -> bool:
24+
"""
25+
Test if a number is a even number using bit operator.
26+
:param number: the number to be checked.
27+
:return: True if the number is even, otherwise False.
28+
29+
>>> is_even_faster(-1)
30+
False
31+
>>> is_even_faster(-2)
32+
True
33+
>>> is_even_faster(0)
34+
True
35+
>>> is_even_faster(3)
36+
False
37+
>>> is_even_faster(4)
38+
True
39+
>>> all([is_even_faster(i) for i in range(0, 100, 2)])
40+
True
41+
"""
42+
return number & 1 == 0
43+
44+
45+
if __name__ == "__main__":
46+
from doctest import testmod
47+
48+
testmod()

maths/odd_check.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
def is_odd(number: int) -> bool:
2+
"""
3+
Test if a number is a odd number.
4+
:param number: the number to be checked.
5+
:return: True if the number is odd, otherwise False.
6+
7+
>>> is_odd(-1)
8+
True
9+
>>> is_odd(-2)
10+
False
11+
>>> is_odd(0)
12+
False
13+
>>> is_odd(3)
14+
True
15+
>>> is_odd(4)
16+
False
17+
>>> all([is_odd(i) for i in range(1, 100, 2)])
18+
True
19+
"""
20+
return number % 2 != 0
21+
22+
23+
def is_odd_faster(number: int) -> bool:
24+
"""
25+
Test if a number is a odd number using bit operator.
26+
:param number: the number to be checked.
27+
:return: True if the number is odd, otherwise False.
28+
29+
>>> is_odd_faster(-1)
30+
True
31+
>>> is_odd_faster(-2)
32+
False
33+
>>> is_odd_faster(0)
34+
False
35+
>>> is_odd_faster(3)
36+
True
37+
>>> is_odd_faster(4)
38+
False
39+
>>> all([is_odd_faster(i) for i in range(1, 100, 2)])
40+
True
41+
"""
42+
return number & 1 != 0
43+
44+
45+
if __name__ == "__main__":
46+
from doctest import testmod
47+
48+
testmod()

0 commit comments

Comments
 (0)