



def       UpperCAmelCase__	(							__snake_case							)				->	bool:
  if not isinstance(__snake_case  ,			__snake_case							):
    raise ValueError('''Input series is not valid, valid series - [1, 2/3, 2]'''							)
  if len(__snake_case							) == 0:
    raise ValueError('''Input list must be a non empty list'''							)
  if len(__snake_case							) == 1 and series[0] != 0:
    return True
  _A          =      []
  _A          =      len(__snake_case							)
  for i in range(0  ,			__snake_case							):
    if series[i] == 0:
      raise ValueError('''Input series cannot have 0 as an element'''							)
    rec_series.append(1 / series[i]							)
  _A          =      rec_series[1] - rec_series[0]
  for index in range(2  ,			__snake_case							):
    if rec_series[index] - rec_series[index - 1] != common_diff:
      return False
  return True




def       UpperCAmelCase__	(							__snake_case							)				->	float:
  if not isinstance(__snake_case  ,			__snake_case							):
    raise ValueError('''Input series is not valid, valid series - [2, 4, 6]'''							)
  if len(__snake_case							) == 0:
    raise ValueError('''Input list must be a non empty list'''							)
  _A          =      0
  for val in series:
    answer += 1 / val
  return len(__snake_case							) / answer


if __name__ == "__main__":
    import doctest

    doctest.testmod()




import math
from timeit import timeit




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  _A          =      0
  _A          =      abs(__snake_case							)
  while True:
    _A          =      n // 10
    digits += 1
    if n == 0:
      break
  return digits




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  return 1 if n == 0 else math.floor(math.log(abs(__snake_case							)  ,			10							) + 1							)




def       UpperCAmelCase__	(							__snake_case							)				->	int:
  return len(str(abs(__snake_case							)							)							)




def       UpperCAmelCase__	(							)				->	None:
  from collections.abc import Callable

  def benchmark_a_function(__snake_case  ,			__snake_case							) -> None:
    _A          =      F'''{func.__name__}({value})'''
    _A          =      timeit(F'''__main__.{call}'''  ,			setup='''import __main__'''							)
    print(F'''{call}: {func(__snake_case							)} -- {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(__snake_case  ,			__snake_case							)
    print()


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    benchmark()