





'''simple docstring'''




def 			_lowerCAmelCase     (    __snake_case    :					int     )	->	list:

     # bit count represents no. of bits in the gray code
     if bit_count < 0:
          raise ValueError('The given input must be positive'     )

     # get the generated string sequence
     __A		:					str						=			gray_code_sequence_string(__snake_case     )
     #
     # convert them to integers
     for i in range(len(__snake_case     )     ):
          __A		:					Optional[int]						=			int(sequence[i]					,				2     )

     return sequence






def 			_lowerCAmelCase     (    __snake_case    :					int     )	->	list:

     # The approach is a recursive one
     # Base case achieved when either n = 0 or n=1
     if bit_count == 0:
          return ["0"]

     if bit_count == 1:
          return ["0", "1"]

     __A		:					Tuple						=			1 << bit_count  # defines the length of the sequence
     # 1<< n is equivalent to 2^n

     # recursive answer will generate answer for n-1 bits
     __A		:					List[Any]						=			gray_code_sequence_string(bit_count - 1     )

     __A		:					List[str]						=			[]

     # append 0 to first half of the smaller sequence generated
     for i in range(seq_len // 2     ):
          __A		:					Union[str, Any]						=			'0' + smaller_sequence[i]
          sequence.append(__snake_case     )

     # append 1 to second half ... start from the end of the list
     for i in reversed(range(seq_len // 2     )     ):
          __A		:					str						=			'1' + smaller_sequence[i]
          sequence.append(__snake_case     )

     return sequence


if __name__ == "__main__":
  import doctest

  doctest.testmod()






'''simple docstring'''




def 			_lowerCAmelCase     (    __snake_case    :					int     )	->	bool:
     return sum(i for i in range(1					,				number // 2 + 1     ) if number % i == 0     ) == number


if __name__ == "__main__":
  print('''Program to check whether a number is a Perfect number or not...''')
  lowercase__       : int         =       int(input('''Enter number: ''').strip())
  print(f"""{number} is {"" if perfect(number) else "not "}a Perfect Number.""")