def       lowerCAmelCase_     (		lowercase:							int  ,					lowercase:							int		)    ->				int:







 '''simple docstring'''
 _UpperCamelCase:     Tuple							= 1  # To kept the Calculated Value
 # Since C(n, k) = C(n, n-k)
 if k > (n - k):
  _UpperCamelCase:     int							= n - k
 # Calculate C(n,k)
 for i in range(lowercase		):
  result *= n - i
  result //= i + 1
 return result




def       lowerCAmelCase_     (		lowercase:							int		)    ->				int:







 '''simple docstring'''
 return binomial_coefficient(2 * node_count  ,					lowercase		) // (node_count + 1)




def       lowerCAmelCase_     (		lowercase:							int		)    ->				int:







 '''simple docstring'''
 if n < 0:
  raise ValueError('''factorial() not defined for negative values'''		)
 _UpperCamelCase:     List[Any]							= 1
 for i in range(1  ,					n + 1		):
  result *= i
 return result




def       lowerCAmelCase_     (		lowercase:							int		)    ->				int:







 '''simple docstring'''
 return catalan_number(lowercase		) * factorial(lowercase		)


if __name__ == "__main__":
  UpperCAmelCase_			    =							int(input('''Enter the number of nodes: ''').strip() or 0)
  if node_count <= 0:
    raise ValueError('''We need some nodes to work with.''')
  print(
      f"""Given {node_count} nodes, there are {binary_tree_count(node_count)} """
      f"""binary trees and {catalan_number(node_count)} binary search trees."""
  )
def       lowerCAmelCase_     (		lowercase:							int = 600_851_475_143		)    ->				int:







 '''simple docstring'''

 try:
  _UpperCamelCase:     Optional[int]							= int(lowercase		)
 except (TypeError, ValueError):
  raise TypeError('''Parameter n must be int or castable to int.'''		)
 if n <= 0:
  raise ValueError('''Parameter n must be greater than or equal to one.'''		)
 _UpperCamelCase:     Dict							= 1
 _UpperCamelCase:     Tuple							= 2
 while i * i <= n:
  while n % i == 0:
   _UpperCamelCase:     List[Any]							= i
   n //= i
  i += 1
 if n > 1:
  _UpperCamelCase:     Any							= n
 return int(lowercase		)


if __name__ == "__main__":
  print(f"""{solution() = }""")