



"""simple docstring"""

import math
def    __snake_case       (  __A			:	List[str]    )    ->					Union[str, Any]:






				'''simple docstring'''
				SCREAMING_SNAKE_CASE	:       List[str] 							=    0
				if n % 2 == 0:
								count += 1
								while n % 2 == 0:
												SCREAMING_SNAKE_CASE	:       Union[str, Any] 							=    int(n / 2    )
    # the n input value must be odd so that
    # we can skip one element (ie i += 2)

				SCREAMING_SNAKE_CASE	:       Union[str, Any] 							=    3

				while i <= int(math.sqrt(lowercase__    )    ):
								if n % i == 0:
												count += 1
												while n % i == 0:
																SCREAMING_SNAKE_CASE	:       int 							=    int(n / i    )
								SCREAMING_SNAKE_CASE	:       Tuple 							=    i + 2

				# this condition checks the prime
				# number n is greater than 2

				if n > 2:
								count += 1
				return count


if __name__ == "__main__":
							A_	:						Any				=			5124_2183
							print(f'''The number of distinct prime factors is/are {exact_prime_factor_count(n)}''')
							print(f'''The value of log(log(n)) is {math.log(math.log(n)):.4f}''')






"""simple docstring"""

def    __snake_case       (  __A			:	int    )    ->					int:






				'''simple docstring'''
				if not isinstance(__A       ,		__A    ):
								raise ValueError('double_factorial() only accepts integral values'    )
				if num < 0:
								raise ValueError('double_factorial() not defined for negative values'    )
				SCREAMING_SNAKE_CASE	:       List[str] 							=    1
				for i in range(__A       ,		0       ,		-2    ):
								value *= i
				return value


if __name__ == "__main__":
							import doctest

							doctest.testmod()





