def sqf_normal(a, b, c, steps=False):
 ABC = (A, B, C) = _remove_gcd(a, b, c)
 sq = tuple((square_factor(i) for i in ABC))
 sqf = (A, B, C) = tuple([(i // (j ** 2)) for (i, j) in zip(ABC, sq)])
 pc = igcd(A, B)
 A /= pc
 B /= pc
 pa = igcd(B, C)
 B /= pa
 C /= pa
 pb = igcd(A, C)
 A /= pb
 B /= pb
 A *= pa
 B *= pb
 C *= pc
 if steps:
  return (sq, sqf, (A, B, C))
 else:
  return (A, B, C)

def sqf_normal ( a , b , c , steps = False ) : ABC = ( A , B , C ) = _remove_gcd ( a , b , c ) sq = tuple ( ( square_factor ( i ) for i in ABC ) ) sqf = ( A , B , C ) = tuple ( [ ( i // ( j ** 2 ) ) for ( i , j ) in zip ( ABC , sq ) ] ) pc = igcd ( A , B ) A /= pc B /= pc pa = igcd ( B , C ) B /= pa C /= pa pb = igcd ( A , C ) A /= pb B /= pb A *= pa B *= pb C *= pc if steps : return ( sq , sqf , ( A , B , C ) ) else : return ( A , B , C )
return a .