def       A	(    ):
						for n in range(1		,  1_000_000						):
												yield n * (n + 1) // 2
def       A	(    _lowercase						):
						SCREAMING_SNAKE_CASE							:    Optional[int]							=							1
						SCREAMING_SNAKE_CASE							:    List[str]							=							2
						while i * i <= n:
												SCREAMING_SNAKE_CASE							:    Optional[int]							=							0
												while n % i == 0:
																		n //= i
																		multiplicity += 1
												divisors_count *= multiplicity + 1
												i += 1
						if n > 1:
												divisors_count *= 2
						return divisors_count
def       A	(    ):
						return next(i for i in triangle_number_generator() if count_divisors(_lowercase						) > 500						)


if __name__ == "__main__":
					print(solution())






import math
def       A	(    _lowercase						):
						return math.sqrt(_lowercase						) * math.sqrt(_lowercase						) == num
def       A	(    _lowercase						):
						SCREAMING_SNAKE_CASE							:    Dict							=							0
						SCREAMING_SNAKE_CASE							:    Tuple							=							n
						while left <= right:
												SCREAMING_SNAKE_CASE							:    Union[str, Any]							=							(left + right) // 2
												if mid**2 == n:
																		return True
												elif mid**2 > n:
																		SCREAMING_SNAKE_CASE							:    Optional[Any]							=							mid - 1
												else:
																		SCREAMING_SNAKE_CASE							:    Optional[int]							=							mid + 1
						return False


if __name__ == "__main__":
					import doctest

					doctest.testmod()





