code: def is_square(n, prep=True):
      """Return True if n == a * a for some integer a, else False.
      If n is suspected of *not* being a square then this is a
      quick method of confirming that it is not.
  
      Examples
      ========
  
      >>> from sympy.ntheory.primetest import is_square
      >>> is_square(25)
      True
      >>> is_square(2)
      False
  
      References
      ==========
  
      .. [1]  https://mersenneforum.org/showpost.php?p=110896
  
      See Also
      ========
      sympy.core.intfunc.isqrt
      """
      if prep:
          n = as_int(n)
          if n < 0:
              return False
          if n in (0, 1):
              return True
      return gmpy_is_square(n)
  
imports: from itertools import count
  from sympy.core.sympify import sympify
  from sympy.external.gmpy import gmpy, gcd, jacobi, is_square, bit_scan1, is_fermat_prp, is_euler_prp, is_selfridge_prp, is_strong_selfridge_prp, is_strong_bpsw_prp
  from sympy.external.ntheory import _lucas_sequence
  from sympy.utilities.misc import as_int, filldedent
label_desc: Use image node_id 4 for calling a global function with example usage: is_square(n, prep) and returns: gmpy_is_square, False, True