



def 						_UpperCAmelCase							( snake_case      ,		snake_case      ,		snake_case     ):





					"""simple docstring"""

					_lowerCAmelCase         =       [1 / first_term]
					_lowerCAmelCase         =       1 / first_term
					for _ in range(number_of_terms - 1     ):
										first_term += common_difference
										arithmetic_progression.append(snake_case     )
					_lowerCAmelCase         =       [1 / step for step in arithmetic_progression]
					return sum(snake_case     )


if __name__ == "__main__":
	import doctest

	doctest.testmod()
	print(sum_of_harmonic_progression(1 / 2, 2, 2))










import math
from timeit import timeit





def     lowerCamelCase__  (  UpperCamelCase__      :							int    )      ->			int:



					'''simple docstring'''




					_snake_case						=					0
					_snake_case						=					abs(UpperCamelCase__    )
					while True:
										_snake_case						=					n // 10
										digits += 1
										if n == 0:
															break
					return digits





def     lowerCamelCase__  (  UpperCamelCase__      :							int    )      ->			int:



					'''simple docstring'''




					return 1 if n == 0 else math.floor(math.log(abs(UpperCamelCase__    )							,     10    ) + 1    )





def     lowerCamelCase__  (  UpperCamelCase__      :							int    )      ->			int:



					'''simple docstring'''




					return len(str(abs(UpperCamelCase__    )    )    )





def     lowerCamelCase__  (  )      ->			None:



					'''simple docstring'''




					from collections.abc import Callable

					def benchmark_a_function(UpperCamelCase__      :							Callable							,     UpperCamelCase__      :							int    ) -> None:
										_snake_case						=					F'''{func.__name__}({value})'''
										_snake_case						=					timeit(F'''__main__.{call}'''							,     setup='import __main__'    )
										print(F'''{call}: {func(UpperCamelCase__    )} -- {timing} seconds'''    )

					for value in (262_144, 1_125_899_906_842_624, 1_267_650_600_228_229_401_496_703_205_376):
										for func in (num_digits, num_digits_fast, num_digits_faster):
															benchmark_a_function(UpperCamelCase__							,     UpperCamelCase__    )
										print()


if __name__ == "__main__":
					import doctest

					doctest.testmod()
					benchmark()



