"""simple docstring"""




def      UpperCAmelCase    (		UpperCamelCase__ = 600_851_475_143 ):






							"""simple docstring"""





							try:
														A__		   =							int(__lowerCamelCase )
							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.' )
							A__		   =							1
							A__		   =							2
							while i * i <= n:
														while n % i == 0:
																					A__		   =							i
																					n //= i
														i += 1
							if n > 1:
														A__		   =							n
							return int(__lowerCamelCase )


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













from math import log

from scipy.constants import Boltzmann, physical_constants

a		:       Any			     = 300  # TEMPERATURE (unit = K)






def 				lowerCamelCase__      (    __lowerCamelCase			:     float  ,		__lowerCamelCase			:     float  ,		__lowerCamelCase			:     float  ,		):

  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()


