import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.io.BufferedWriter;
import java.io.Writer;
import java.io.OutputStreamWriter;
import java.util.InputMismatchException;
import java.io.IOException;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        OutputWriter out = new OutputWriter(outputStream);
        TaskC solver = new TaskC();
        solver.solve(1, in, out);
        out.close();
    }

    static class TaskC {
        public int mod = 1000000007;
        public int MAXN = 333;
        public int[][] w1;
        public long[] fact;
        public long[] ifact;

        public void solve(int testNumber, InputReader in, OutputWriter out) {
            long[][] e = Factorials.getFIF(MAXN, mod);
            fact = e[0];
            ifact = e[1];
            w1 = new int[MAXN][MAXN];
            w1[0][0] = 1;
            for (int i = 1; i < MAXN; i++) {
                for (int j = 1; j < MAXN; j++) {
                    for (int k = 1; k <= i; k++) {
                        w1[i][j] += w1[i - k][j - 1];
                        if (w1[i][j] >= mod) w1[i][j] -= mod;
                    }
                }
            }

            int n = in.nextInt();
            int[] arr = in.readIntArray(n);
            boolean[] marked = new boolean[n];
            int[] fs = new int[n];
            int fidx = 0;
            for (int i = 0; i < n; i++) {
                if (marked[i]) continue;
                int count = 0;
                for (int j = 0; j < n; j++) {
                    if (isSquare(1L * arr[i] * arr[j])) {
                        if (marked[j]) System.exit(1);
                        marked[j] = true;
     ... Which one is the correct time complexity of the code snippet: constant, linear, quadratic, cubic, log(n), nlog(n) or NP-hard?