def is_prime(num):
    if num <= 1:
        return False
    else:
        return is_prime_inner(num, num - 1)

# If they're both the same number, that's handled above
def is_prime_inner(num, denominator):
    if denominator <= 1:
        return True
    elif num % denominator == 0:
        return False
    else:
        return is_prime_inner(num, denominator - 1)
    
def factorial(num):
    if num <= 1:
        return 1
    else:
        return num * factorial(num - 1)
