from timeit import timeit



def   __A		(			_A					):



 """simple docstring"""


 if number < 0:
  raise ValueError("the value of input must not be negative"					)
 __a       =  0
 while number:
  number &= number - 1
  result += 1
 return result



def   __A		(			_A					):



 """simple docstring"""


 if number < 0:
  raise ValueError("the value of input must not be negative"					)
 __a       =  0
 while number:
  if number % 2 == 1:
   result += 1
  number >>= 1
 return result



def   __A		(			):



 """simple docstring"""


 def do_benchmark(_A					) -> None:
  __a       =  "import __main__ as z"
  print(f"""Benchmark when {number = }:"""					)
  print(f"""{get_set_bits_count_using_modulo_operator(__UpperCamelCase					) = }"""					)
  __a       =  timeit("z.get_set_bits_count_using_modulo_operator(25)"							,				setup=__UpperCamelCase					)
  print(f"""timeit() runs in {timing} seconds"""					)
  print(f"""{get_set_bits_count_using_brian_kernighans_algorithm(__UpperCamelCase					) = }"""					)
  __a       =  timeit(
      "z.get_set_bits_count_using_brian_kernighans_algorithm(25)"							,				setup=__UpperCamelCase							,				)
  print(f"""timeit() runs in {timing} seconds"""					)

 for number in (25, 37, 58, 0):
  do_benchmark(__UpperCamelCase					)
  print()


if __name__ == "__main__":
  import doctest

  doctest.testmod()
  benchmark()



def   __A		(			_A = 100_0000					):



 """simple docstring"""


 __a       =  [i - 1 for i in range(limit + 1					)]

 for i in range(2							,				limit + 1					):
  if phi[i] == i - 1:
   for j in range(2 * i							,				limit + 1							,				_A					):
    phi[j] -= phi[j] // i

 return sum(phi[2 : limit + 1]					)


if __name__ == "__main__":
  print(solution())


