


"""simple docstring"""



def      UpperCAmelCase     (       _lowercase :   float			,   _lowercase :   float			,   _lowercase :   float			,   _lowercase :   float			,   _lowercase :   float			,   )						-> float:


	"""simple docstring"""




	lowerCAmelCase_      							=			[redshift, radiation_density, matter_density, dark_energy]
	if any(p < 0 for p in parameters	):
		raise ValueError('''All input parameters must be positive'''	)

	if any(p > 1 for p in parameters[1:4]	):
		raise ValueError('''Relative densities cannot be greater than one'''	)
	else:
		lowerCAmelCase_      							=			1 - (matter_density + radiation_density + dark_energy)

		lowerCAmelCase_      							=			(
		    radiation_density * (redshift + 1) ** 4
		    + matter_density * (redshift + 1) ** 3
		    + curvature * (redshift + 1) ** 2
		    + dark_energy
		)

		lowerCAmelCase_      							=			hubble_constant * e_a ** (1 / 2)
		return hubble


if __name__ == "__main__":
		import doctest

		# run doctest
		doctest.testmod()

		# demo LCDM approximation
		lowercase_							=							0.3

		print(
		    hubble_parameter(
		        hubble_constant=68.3,
		        radiation_density=1E-4,
		        matter_density=matter_density,
		        dark_energy=1 - matter_density,
		        redshift=0,
		    )
		)



"""simple docstring"""



def      UpperCAmelCase     (       _lowercase :   int = 1_0_0_0	)						-> int:


	"""simple docstring"""




	lowerCAmelCase_							,	lowerCAmelCase_      							=			1, 1
	lowerCAmelCase_      							=			[]
	for i in range(1			,   n + 1	):
		lowerCAmelCase_      							=			prev_numerator + 2 * prev_denominator
		lowerCAmelCase_      							=			prev_numerator + prev_denominator
		if len(str(_lowercase	)	) > len(str(_lowercase	)	):
			result.append(_lowercase	)
		lowerCAmelCase_      							=			numerator
		lowerCAmelCase_      							=			denominator

	return len(_lowercase	)


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