




'''simple docstring'''






from itertools import combinations, product

def      __lowerCAmelCase   (       snake_case__   , snake_case__   , snake_case__   , snake_case__		):
			if xa == ya == 0 or xa == ya == 0:
						return False
			__UpperCamelCase :     Optional[int]										=  xa * xa + ya * ya
			__UpperCamelCase :     List[str]										=  xa * xa + ya * ya
			__UpperCamelCase :     str										=  (xa - xa) * (xa - xa) + (ya - ya) * (ya - ya)
			return (
			    a_square + b_square == c_square
			    or a_square + c_square == b_square
			    or b_square + c_square == a_square
			)

def      __lowerCAmelCase   (       snake_case__ = 50		):
			return sum(
			    1
			    for pta, pta in combinations(product(range(limit + 1		)   , repeat=2		)   , 2		)
			    if is_right(*__lowerCAmelCase   , *__lowerCAmelCase		)		)


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









"""simple docstring"""
import math






def 				__lowerCAmelCase					(					__lowerCAmelCase			:		Tuple						)    ->       Any:
 _UpperCamelCase      :	str					      =  0
 if n % 2 == 0:
  count += 1
  while n % 2 == 0:
   _UpperCamelCase      :	List[Any]					      =  int(n / 2						)
    # the n input value must be odd so that
    # we can skip one element (ie i += 2)

 _UpperCamelCase      :	Tuple					      =  3

 while i <= int(math.sqrt(__lowerCAmelCase						)						):
  if n % i == 0:
   count += 1
   while n % i == 0:
    _UpperCamelCase      :	Any					      =  int(n / i						)
  _UpperCamelCase      :	Optional[Any]					      =  i + 2

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

 if n > 2:
  count += 1
 return count


if __name__ == "__main__":
    _SCREAMING_SNAKE_CASE						 =     5_1_2_4_2_1_8_3
    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}')



