
from timeit import timeit

def 				SCREAMING_SNAKE_CASE     (      __UpperCamelCase :						int       ) ->       int:

				"""simple docstring"""







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

def 				SCREAMING_SNAKE_CASE     (      __UpperCamelCase :						int       ) ->       int:

				"""simple docstring"""







				if number < 0:
								raise ValueError('''the value of input must not be negative'''       )
				A__  :	Optional[Any]         =							0
				while number:
								if number % 2 == 1:
												result += 1
								number >>= 1
				return result

def 				SCREAMING_SNAKE_CASE     (      ) ->       None:

				"""simple docstring"""







				def do_benchmark(__UpperCamelCase :						int       ) -> None:
								A__  :	List[str]         =							'''import __main__ as z'''
								print(F"Benchmark when {number = }:"       )
								print(F"{get_set_bits_count_using_modulo_operator(__UpperCamelCase       ) = }"       )
								A__  :	int         =							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__  :	Any         =							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()

from abc import ABC, abstractmethod
from argparse import ArgumentParser







class  UpperCamelCase__		(    SCREAMING_SNAKE_CASE_   ):







	'''simple docstring'''





	@staticmethod
	@abstractmethod
	def   __snake_case				(			UpperCamelCase__		):
					raise NotImplementedError()





	@abstractmethod
	def   __snake_case				(			self		):
					raise NotImplementedError()