Let's write a recursive function to determine whether the number is even. The idea is very simple: if n-1 is not even, then n is even, and if n-1 is even, then n is not even. 0 is, of course, even:
def is_even(n):
'''Return True iff n is even'''
if n == 0:
return True
return not is_even(n-1)
Here is an even simpler idea: n is even iff n-2 is even. To avoid infinite recursion, we'd have to now have two base cases:
def is_even2(n):
'''Return True iff n is even'''
if n == 0:
return True
if n == 1:
return False
return is_even2(n-2)