





import math




def 			lowerCAmelCase_			(				UpperCamelCase_	)  ->		Tuple:
       UpperCamelCase_ 							=	0
       if n % 2 == 0:
              count += 1
              while n % 2 == 0:
                     UpperCamelCase_ 							=	int(n / 2	)
    # the n input value must be odd so that
    # we can skip one element (ie i += 2)

       UpperCamelCase_ 							=	3

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

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

       if n > 2:
              count += 1
       return count


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








from __future__ import annotations




def 			lowerCAmelCase_			(				UpperCamelCase_	)  ->		int | None:
       for r in range(1       ,		UpperCamelCase_	):
              UpperCamelCase_ 							=	[]
              for x in range(n - 1	):
                     UpperCamelCase_ 							=	pow(UpperCamelCase_       ,		UpperCamelCase_       ,		UpperCamelCase_	)
                     if val in li:
                            break
                     li.append(UpperCamelCase_	)
              else:
                     return r
       return None


if __name__ == "__main__":
     _UpperCAmelCase										=					int(input('Enter a prime number q: '))
     _UpperCAmelCase										=					find_primitive(q)
     if a is None:
          print(f'''Cannot find the primitive for the value: {a!r}''')
     else:
          _UpperCAmelCase										=					int(input('Enter private key of A: '))
          _UpperCAmelCase										=					pow(a, a_private, q)
          _UpperCAmelCase										=					int(input('Enter private key of B: '))
          _UpperCAmelCase										=					pow(a, b_private, q)

          _UpperCAmelCase										=					pow(b_public, a_private, q)
          _UpperCAmelCase										=					pow(a_public, b_private, q)

          print('The key value generated by A is: ', a_secret)
          print('The key value generated by B is: ', b_secret)

