





import math
import unittest




def     __UpperCamelCase						(_SCREAMING_SNAKE_CASE	)       ->     bool:
  assert isinstance(_SCREAMING_SNAKE_CASE	,		_SCREAMING_SNAKE_CASE	) and (
      number >= 0
  ), "'number' must been an int and positive"

  if 1 < number < 4:
    # 2 and 3 are primes
    return True
  elif number < 2 or number % 2 == 0 or number % 3 == 0:
    # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
    return False

  # All primes number are in format of 6k +/- 1
  for i in range(5	,		int(math.sqrt(_SCREAMING_SNAKE_CASE	) + 1	)	,		6	):
    if number % i == 0 or number % (i + 2) == 0:
      return False
  return True
class        SCREAMING_SNAKE_CASE     (unittest.TestCase   ):


   def  SCREAMING_SNAKE_CASE_							(					self    :       int )->     Union[str, Any]:





     """simple docstring"""







     self.assertTrue(is_prime(2 ) )
     self.assertTrue(is_prime(3 ) )
     self.assertTrue(is_prime(5 ) )
     self.assertTrue(is_prime(7 ) )
     self.assertTrue(is_prime(11 ) )
     self.assertTrue(is_prime(13 ) )
     self.assertTrue(is_prime(17 ) )
     self.assertTrue(is_prime(19 ) )
     self.assertTrue(is_prime(23 ) )
     self.assertTrue(is_prime(29 ) )


   def  SCREAMING_SNAKE_CASE_							(					self    :       Optional[int] )->     List[str]:





     """simple docstring"""







     with self.assertRaises(a ):
       is_prime(-19 )
     self.assertFalse(
         is_prime(0 )    ,  'Zero doesn\'t have any positive factors, primes must have exactly two.'    ,  )
     self.assertFalse(
         is_prime(1 )    ,  'One only has 1 positive factor, primes must have exactly two.'    ,  )
     self.assertFalse(is_prime(2 * 2 ) )
     self.assertFalse(is_prime(2 * 3 ) )
     self.assertFalse(is_prime(3 * 3 ) )
     self.assertFalse(is_prime(3 * 5 ) )
     self.assertFalse(is_prime(3 * 5 * 7 ) )


if __name__ == "__main__":
      unittest.main()









def     __UpperCamelCase						(_SCREAMING_SNAKE_CASE = 50	)       ->     int:
  lowercase__			    =						[[0] * 3 for _ in range(length + 1	)]

  for row_length in range(length + 1	):
    for tile_length in range(2	,		5	):
      for tile_start in range(row_length - tile_length + 1	):
        different_colour_ways_number[row_length][tile_length - 2] += (
            different_colour_ways_number[row_length - tile_start - tile_length][
                tile_length - 2
            ]
            + 1
        )

  return sum(different_colour_ways_number[length]	)


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


