**DESCRIPTION:**

  Your strict math teacher is teaching you about right triangles, and the Pythagorean Theorem --> a^2 + b^2 = c^2 whereas a and b are the legs of the right triangle and c is the hypotenuse of the right triangle. On the test however, the question asks: What are the possible integer lengths for the other side of the triangle, but since you never learned anything about that in class, you realize she meant What are the possible integer lengths for the other side of the right triangle. Because you want to address the fact that she asked the wrong question and the fact that you're smart at math, you've decided to answer all the possible values for the third side EXCLUDING the possibilities for a right triangle in increasing order.
  
**EXAMPLES:**

```
side_len(1, 1) --> [1]
side_len(3, 4) --> [2, 3, 4, 6]
side_len(4, 6) --> [3, 4, 5, 6, 7, 8, 9]
```
**RETURN:**

  Return your answer as a list of all the possible third side lengths of the triangle without the right triangles in increasing order.
  
By the way, after finishing this kata, please try some of my other katas: [Here](https://www.codewars.com/collections/tonylicodings-authored-katas)

NOTE:
  
  When given side_len(x, y), y will always be greater than or equal to x. Also, if a right triangle's legs are passed in, exclude the hypotenuse. If a right triangle's leg and hypotenuse are passed in, exclude the other leg.

Source: codewars | Difficulty: EASY
Tags: Fundamentals

Starter code: def side_len(x, y):
	

Solutions:
def side_len(x, y):
	return [z for z in range(abs(x - y) + 1, x + y) if z * z not in (abs(x * x - y * y), x * x + y * y)]


def side_len(x, y):
	return [i for i in range(abs(x - y) + 1, abs(x + y)) if i != (x * x + y * y) ** 0.5 and i != abs(y * y - x * x) ** 0.5]


def side_len(x, y):
	return [i for i in range(y - x + 1, x + y) if abs(i ** 2 - y ** 2) != x ** 2]


from math import sqrt

def side_len(x, y):
	if y < x:
		return "for fuck's sake"
	mini = y - x + 1
	maxi = x + y - 1
	result = list(range(mini, maxi + 1))
	hyp = sqrt(x ** 2 + y ** 2)
	leg = sqrt(y ** 2 - x ** 2)
	if hyp.is_integer() and mini <= hyp <= maxi:
		result.remove(int(hyp))
	if leg.is_integer() and mini <= leg <= maxi:
		result.remove(int(leg))
	return result


def side_len(x, y):
	return [a for a in range(y - x + 1, x + y) if a * a + x * x != y * y and x * x + y * y != a * a]


def side_len(a, b):
	r = ((a * a + b * b) ** 0.5, (b * b - a * a) ** 0.5)
	return [c for c in range(b - a + 1, a + b) if c not in r]


def right(x, y, z):
	(x, y, z) = sorted([x, y, z])
	return x ** 2 + y ** 2 == z ** 2

def side_len(x, y):
	return [z for z in range(y - x + 1, x + y) if not right(x, y, z)]


def side_len(x, y):
	a = ((x ** 2 + y ** 2) ** 0.5, (y ** 2 - x ** 2) ** 0.5)
	return [i for i in range(y - x + 1, y + x) if i not in a]


_trips = lambda x, y: [(x ** 2 + y ** 2) ** 0.5, (y ** 2 - x ** 2) ** 0.5]

def side_len(x, y):
	return [i for i in range(y - x + 1, x + y) if i not in _trips(x, y)]