
"""simple docstring"""





from math import sqrt







def 			lowercase__  (	__lowerCamelCase						):
   UpperCAmelCase_      :      Any      =					[1]
   for i in range(2,	int(sqrt(__lowerCamelCase						)						) + 1,	1						):
      if number % i == 0:
         values.append(__lowerCamelCase						)
         if int(number // i						) != i:
            values.append(int(number // i						)						)
   return sorted(__lowerCamelCase						)







def 			lowercase__  (	__lowerCamelCase						):
   return sum(factors(__lowerCamelCase						)						) > n







def 			lowercase__  (	__lowerCamelCase						):
   UpperCAmelCase_      :      Any      =					factors(__lowerCamelCase						)
   UpperCAmelCase_      :      str      =					len(__lowerCamelCase						)
   UpperCAmelCase_      :      int      =					[[0 for i in range(number + 1						)] for j in range(r + 1						)]
   for i in range(r + 1						):
      UpperCAmelCase_      :      List[str]      =					True

   for i in range(1,	number + 1						):
      UpperCAmelCase_      :      List[Any]      =					False

   for i in range(1,	r + 1						):
      for j in range(1,	number + 1						):
         if j < values[i - 1]:
            UpperCAmelCase_      :      int      =					subset[i - 1][j]
         else:
            UpperCAmelCase_      :      List[str]      =					subset[i - 1][j] or subset[i - 1][j - values[i - 1]]

   return subset[r][number] != 0







def 			lowercase__  (	__lowerCamelCase						):
   return abundant(__lowerCamelCase						) and not semi_perfect(__lowerCamelCase						)


if __name__ == "__main__":
    import doctest

    doctest.testmod(verbose=True)
    for number in (69, 70, 71):
        print(f"""{number} is {'' if weird(number) else 'not '}weird.""")




"""simple docstring"""





from string import ascii_uppercase







def 			__a  (	__lowerCamelCase,	__lowerCamelCase,	__lowerCamelCase = False,	__lowerCamelCase = ascii_uppercase						):
   UpperCAmelCase_      :      List[str]      =					keyword.upper()
   UpperCAmelCase_      :      str      =					plaintext.upper()
   UpperCAmelCase_      :      Tuple      =					set(__lowerCamelCase						)

   # create a list of unique characters in the keyword - their order matters
   # it determines how we will map plaintext characters to the ciphertext
   UpperCAmelCase_      :      Tuple      =					[]
   for char in keyword:
      if char in alphabet_set and char not in unique_chars:
         unique_chars.append(__lowerCamelCase						)
    # the number of those unique characters will determine the number of rows
   UpperCAmelCase_      :      Union[str, Any]      =					len(__lowerCamelCase						)

   # create a shifted version of the alphabet
   UpperCAmelCase_      :      Tuple      =					unique_chars + [
       char for char in alphabet if char not in unique_chars
   ]

   # create a modified alphabet by splitting the shifted alphabet into rows
   UpperCAmelCase_      :      List[str]      =					[
       shifted_alphabet[k : k + num_unique_chars_in_keyword]
       for k in range(0,	26,	__lowerCamelCase						)
   ]

   # map the alphabet characters to the modified alphabet characters
   # going 'vertically' through the modified alphabet - consider columns first
   UpperCAmelCase_      :      Tuple      =					{}
   UpperCAmelCase_      :      Dict      =					0
   for column in range(__lowerCamelCase						):
      for row in modified_alphabet:
         # if current row (the last one) is too short, break out of loop
         if len(__lowerCamelCase						) <= column:
            break

         # map current letter to letter in modified alphabet
         UpperCAmelCase_      :      Tuple      =					row[column]
         letter_index += 1

   if verbose:
      print(__lowerCamelCase						)
   # create the encrypted text by mapping the plaintext to the modified alphabet
   return "".join(mapping[char] if char in mapping else char for char in plaintext						)


if __name__ == "__main__":
    # example use
    print(mixed_keyword('college', 'UNIVERSITY'))


