#simple loop
#for num in range(10):
#    print(num)

def sum_to_n(n):
    """
    returns the sum of the natural numbers up to and including n
    """
    old_sum = 0
    for num in range(n+1):
        old_sum += num
    return old_sum


def is_prime(num):
    """
    returns whether or not num is prime
    """
    if num <= 2:
        return True

    for denominator in range(2, num):
        if num % denominator == 0:
            return False

    return True

def count_digits(num):
    """
    Counts the number of digits in NATURAL number num
    """
    if num < 10:
        return 1
    else:
        return count_digits(num/10) + 1
    
def count_digits2(num):
    digits = 1
    while num >= 10:
        digits += 1
        num /= 10
    return digits

def factorial(n):
    """
    computes n!
    """
    if n == 0:
        return 0
    
    old_product = 1
    for num in range(1, n+1):
        old_product *= num
    return old_product
    
    
def f5():
    return f4() + 1

def f4():
    return f3() + 1

def f3():
    return f2() + 1

def f2():
    return f1() + 1

def f1():
    return 1

def f(num):
    if num == 1:
        return 1
    else:
        return f(num - 1) + 1    

