def fermat(n):
 if ((n & 1) == 0):
  return [(n >> 1), 2]
 x = int(sqrt(n))
 if ((x * x) == n):
  return [x, x]
 x += 1
 while True:
  y2 = ((x * x) - n)
  y = int(sqrt(y2))
  if ((y * y) == y2):
   break
  else:
   x += 1
 return [(x - y), (x + y)]

def fermat ( n ) : if ( ( n & 1 ) == 0 ) : return [ ( n >> 1 ) , 2 ] x = int ( sqrt ( n ) ) if ( ( x * x ) == n ) : return [ x , x ] x += 1 while True : y2 = ( ( x * x ) - n ) y = int ( sqrt ( y2 ) ) if ( ( y * y ) == y2 ) : break else : x += 1 return [ ( x - y ) , ( x + y ) ]
factorization of the integer n .