






'''simple docstring'''




def       __UpperCAmelCase						(  lowerCamelCase_)							->     int:
		UpperCamelCase__				:					Optional[Any]					=					0
		while num > 0:
				digit_sum += num % 10
				num //= 10
		return digit_sum







def       __UpperCAmelCase						(  lowerCamelCase_ = 100)							->     int:
		UpperCamelCase__				:					Union[str, Any]					=					1
		UpperCamelCase__				:					Optional[int]					=					2

		for i in range(2     ,      max_n + 1):
				UpperCamelCase__				:					int					=					pre_numerator
				UpperCamelCase__				:					Dict					=					2 * i // 3 if i % 3 == 0 else 1
				UpperCamelCase__				:					Any					=					cur_numerator
				UpperCamelCase__				:					Optional[Any]					=					e_cont * pre_numerator + temp

		return sum_digits(lowerCamelCase_)


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












'''simple docstring'''




from math import log

from scipy.constants import Boltzmann, physical_constants

lowerCAmelCase__          =						300  # TEMPERATURE (unit = K)







def       __UpperCAmelCase						(  lowerCamelCase_     ,      lowerCamelCase_     ,      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()




