


import os
import sys
import time

from . import transposition_cipher as trans_cipher




def 			__lowercase	(						)    ->None:







      """simple docstring"""

      lowercase			:   str					   =		'''Prehistoric Men.txt'''
      lowercase			:   Union[str, Any]					   =		'''Output.txt'''
      lowercase			:   List[Any]					   =		int(input('''Enter key: '''     )     )
      lowercase			:   List[Any]					   =		input('''Encrypt/Decrypt [e/d]: '''     )

      if not os.path.exists(_UpperCamelCase     ):
            print(f"""File {input_file} does not exist. Quitting..."""     )
            sys.exit()
      if os.path.exists(_UpperCamelCase     ):
            print(f"""Overwrite {output_file}? [y/n]"""     )
            lowercase			:   Any					   =		input('''> '''     )
            if not response.lower().startswith('''y'''     ):
                  sys.exit()

      lowercase			:   int					   =		time.time()
      if mode.lower().startswith('''e'''     ):
            with open(_UpperCamelCase     ) as f:
                  lowercase			:   Optional[Any]					   =		f.read()
            lowercase			:   str					   =		trans_cipher.encrypt_message(_UpperCamelCase,    _UpperCamelCase     )
      elif mode.lower().startswith('''d'''     ):
            with open(_UpperCamelCase     ) as f:
                  lowercase			:   str					   =		f.read()
            lowercase			:   List[Any]					   =		trans_cipher.decrypt_message(_UpperCamelCase,    _UpperCamelCase     )

      with open(_UpperCamelCase,    '''w'''     ) as output_obj:
            output_obj.write(_UpperCamelCase     )

      lowercase			:   Dict					   =		round(time.time() - start_time,    2     )
      print(('''Done (''', total_time, '''seconds )''')     )


if __name__ == "__main__":
  main()





import math




def 			__lowercase	(						_UpperCamelCase     )    ->Union[str, Any]:







      """simple docstring"""

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

      lowercase			:   Optional[int]					   =		3

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

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

      if n > 2:
            count += 1
      return count


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

