def is_happy(n):
    """
    Determines whether the number n is a "happy number".
    Int -> Bool

    Notes:
    Uses str() to split digits (slower, less efficient)
    Uses a set to contain the sequence generated from n
    """
    n_sequence = set()
    while n != 1:
        s = str(n)
        n = sum(pow(int(x),2) for x in s)
        if n in n_sequence: return False
        n_sequence.add(n)
    return True