


'''simple docstring'''
def 	_A  (       A							)  ->				int:
	if not isinstance(A							,A							) or number < 0:
		raise ValueError("Input must be a non-negative integer"							)

	lowercase						:		Union[str, Any]   					=		0
	while number:
		# This way we arrive at next set bit (next 1) instead of looping
		# through each bit and checking for 1s hence the
		# loop won't run 32 times it will only run the number of `1` times
		number &= number - 1
		count += 1
	return count


if __name__ == "__main__":
					import doctest

					doctest.testmod()






'''simple docstring'''
def 	_A  (       A							)  ->				list:
	lowercase						:		str   					=		int(A							)
	if n_element < 1:
		lowercase						:		List[Any]   					=		ValueError("a should be a positive number"							)
		raise my_error

	lowercase						:		List[Any]   					=		[1]
	lowercase					,		lowercase					,		lowercase						:		Tuple   					=		(0, 0, 0)
	lowercase						:		Dict   					=		1
	while index < n_element:
		while hamming_list[i] * 2 <= hamming_list[-1]:
			i += 1
		while hamming_list[j] * 3 <= hamming_list[-1]:
			j += 1
		while hamming_list[k] * 5 <= hamming_list[-1]:
			k += 1
		hamming_list.append(
		    min(hamming_list[i] * 2							,hamming_list[j] * 3							,hamming_list[k] * 5							)							)
		index += 1
	return hamming_list


if __name__ == "__main__":
					lowerCAmelCase   : Union[str, Any]             =				input("""Enter the last number (nth term) of the Hamming Number Series: """)
					print("""Formula of Hamming Number Series => 2^i * 3^j * 5^k""")
					lowerCAmelCase   : Tuple             =				hamming(int(n))
					print("""-----------------------------------------------------""")
					print(F'''The list with nth numbers is: {hamming_numbers}''')
					print("""-----------------------------------------------------""")


