


'''simple docstring'''





def 						UpperCAmelCase__(				_SCREAMING_SNAKE_CASE					: int,_SCREAMING_SNAKE_CASE					: int ):






			"""simple docstring"""




			if a < 0 or b < 0:
						raise ValueError('the value of both inputs must be positive' )

			__A=	str(bin(_SCREAMING_SNAKE_CASE ) )[2:]  # remove the leading "0b"
			__A=	str(bin(_SCREAMING_SNAKE_CASE ) )[2:]  # remove the leading "0b"

			__A=	max(len(_SCREAMING_SNAKE_CASE ),len(_SCREAMING_SNAKE_CASE ) )

			return "0b" + "".join(
			    str(int(char_a == '1' and char_b == '1' ) )
			    for char_a, char_b in zip(a_binary.zfill(_SCREAMING_SNAKE_CASE ),b_binary.zfill(_SCREAMING_SNAKE_CASE ) ) )


if __name__ == "__main__":
					import doctest

					doctest.testmod()







'''simple docstring'''





from __future__ import annotations

from functools import lru_cache
from math import ceil

UpperCAmelCase__  			=				1_0_0

UpperCAmelCase__  			=				set(range(3, NUM_PRIMES, 2))
primes.add(2)
UpperCAmelCase__  			=				42

for prime in range(3, ceil(NUM_PRIMES**0.5), 2):
					if prime not in primes:
										continue
					primes.difference_update(set(range(prime * prime, NUM_PRIMES, prime)))






@lru_cache(maxsize=100 )
def 						UpperCAmelCase__(				_SCREAMING_SNAKE_CASE					: int ):






			"""simple docstring"""




			if number_to_partition < 0:
						return set()
			elif number_to_partition == 0:
						return {1}

			__A=	set()
			__A=	42
			__A=	42

			for prime in primes:
						if prime > number_to_partition:
									continue
						for sub in partition(number_to_partition - prime ):
									ret.add(sub * prime )

			return ret






def 						UpperCAmelCase__(				_SCREAMING_SNAKE_CASE					: int = 5000 ):






			"""simple docstring"""




			for number_to_partition in range(1,_SCREAMING_SNAKE_CASE ):
						if len(partition(_SCREAMING_SNAKE_CASE ) ) > number_unique_partitions:
									return number_to_partition
			return None


if __name__ == "__main__":
					print(F"""{solution() = }""")



