def 			__SCREAMING_SNAKE_CASE						(      __UpperCamelCase					: int				,  __UpperCamelCase					: int			)							->      int:







  """simple docstring"""





  SCREAMING_SNAKE_CASE__    							=   1  # To kept the Calculated Value
  # Since C(n, k) = C(n, n-k)
  if k > (n - k):
    SCREAMING_SNAKE_CASE__    							=   n - k
  # Calculate C(n,k)
  for i in range(__UpperCamelCase			):
    result *= n - i
    result //= i + 1
  return result



def 			__SCREAMING_SNAKE_CASE						(      __UpperCamelCase					: int			)							->      int:







  """simple docstring"""





  return binomial_coefficient(2 * node_count				,  __UpperCamelCase			) // (node_count + 1)



def 			__SCREAMING_SNAKE_CASE						(      __UpperCamelCase					: int			)							->      int:







  """simple docstring"""





  if n < 0:
    raise ValueError("""factorial() not defined for negative values"""			)
  SCREAMING_SNAKE_CASE__    							=   1
  for i in range(1				,  n + 1			):
    result *= i
  return result



def 			__SCREAMING_SNAKE_CASE						(      __UpperCamelCase					: int			)							->      int:







  """simple docstring"""





  return catalan_number(__UpperCamelCase			) * factorial(__UpperCamelCase			)


if __name__ == "__main__":
  __lowerCamelCase    :				int							     =	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."""
  )

from math import log

from scipy.constants import Boltzmann, physical_constants

__lowerCamelCase    :				int							     =	300  # TEMPERATURE (unit = K)



def 			__SCREAMING_SNAKE_CASE						(      __UpperCamelCase					: float				,  __UpperCamelCase					: float				,  __UpperCamelCase					: float				,  )							->      float:







  """simple docstring"""





  if donor_conc <= 0:
    raise ValueError("""Donor concentration should be positive"""			)
  elif acceptor_conc <= 0:
    raise ValueError("""Acceptor concentration should be positive"""			)
  elif intrinsic_conc <= 0:
    raise ValueError("""Intrinsic concentration should be positive"""			)
  elif donor_conc <= intrinsic_conc:
    raise ValueError(
        """Donor concentration should be greater than intrinsic concentration"""			)
  elif acceptor_conc <= intrinsic_conc:
    raise ValueError(
        """Acceptor concentration should be greater than intrinsic concentration"""			)
  else:
    return (
        Boltzmann
        * T
        * log((donor_conc * acceptor_conc) / intrinsic_conc**2			)
        / physical_constants["electron volt"][0]
    )


if __name__ == "__main__":
   import doctest

   doctest.testmod()
