def is_happy_number(n):
    num_str = str(n)
    
   
    def sum_of_squares(num_str):
        total = 0
        for digit in num_str:
            total += int(digit) ** 2
        return total
    
    
    seen_numbers = set()
    while n != 1:
        if n in seen_numbers:
            return False
        seen_numbers.add(n)
        n = sum_of_squares(num_str)
        num_str = str(n)
    
    return True

print(is_happy_number(19))  # True
print(is_happy_number(7))   # False