import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

class Main {

	public static void main(String[] args) {

		// ストリームを作成する
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		// データ数を取得する
		int loop = Integer.parseInt(readLine(reader));
		for (int i = 0; i < loop; i++) {
			String[] sideArray = readLine(reader).split(" ");
			int[] sideNumArray = new int[sideArray.length];
			for (int j = 0; j < sideNumArray.length; j++) {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			}

			// 三平方の定理を利用してチェックを行う
			Arrays.sort(sideNumArray);
			int smallTwo = sideNumArray[0] * sideNumArray[0] + sideNumArray[1]
					* sideNumArray[1];
			int largeOne = sideNumArray[2] * sideNumArray[2];

			// 定理を満たす場合はYES、そうでない場合はNOを出力する
			if (smallTwo == largeOne) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}

		}

	}

	/**
	 * ストリームから1行読み込んで、文字列として返す。
	 *
	 * @param reader
	 *            入力ストリーム
	 * @return　文字列
	 */
	private static String readLine(BufferedReader reader) {
		String line = null;
		try {
			line = reader.readLine();
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return line;
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.Arrays; Arrays java.util class Main {

	public static void main(String[] args) {

		// ストリームを作成する
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		// データ数を取得する
		int loop = Integer.parseInt(readLine(reader));
		for (int i = 0; i < loop; i++) {
			String[] sideArray = readLine(reader).split(" ");
			int[] sideNumArray = new int[sideArray.length];
			for (int j = 0; j < sideNumArray.length; j++) {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			}

			// 三平方の定理を利用してチェックを行う
			Arrays.sort(sideNumArray);
			int smallTwo = sideNumArray[0] * sideNumArray[0] + sideNumArray[1]
					* sideNumArray[1];
			int largeOne = sideNumArray[2] * sideNumArray[2];

			// 定理を満たす場合はYES、そうでない場合はNOを出力する
			if (smallTwo == largeOne) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}

		}

	}

	/**
	 * ストリームから1行読み込んで、文字列として返す。
	 *
	 * @param reader
	 *            入力ストリーム
	 * @return　文字列
	 */
	private static String readLine(BufferedReader reader) {
		String line = null;
		try {
			line = reader.readLine();
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return line;
	}
} Main public static void main(String[] args) {

		// ストリームを作成する
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		// データ数を取得する
		int loop = Integer.parseInt(readLine(reader));
		for (int i = 0; i < loop; i++) {
			String[] sideArray = readLine(reader).split(" ");
			int[] sideNumArray = new int[sideArray.length];
			for (int j = 0; j < sideNumArray.length; j++) {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			}

			// 三平方の定理を利用してチェックを行う
			Arrays.sort(sideNumArray);
			int smallTwo = sideNumArray[0] * sideNumArray[0] + sideNumArray[1]
					* sideNumArray[1];
			int largeOne = sideNumArray[2] * sideNumArray[2];

			// 定理を満たす場合はYES、そうでない場合はNOを出力する
			if (smallTwo == largeOne) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}

		}

	} main {

		// ストリームを作成する
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		// データ数を取得する
		int loop = Integer.parseInt(readLine(reader));
		for (int i = 0; i < loop; i++) {
			String[] sideArray = readLine(reader).split(" ");
			int[] sideNumArray = new int[sideArray.length];
			for (int j = 0; j < sideNumArray.length; j++) {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			}

			// 三平方の定理を利用してチェックを行う
			Arrays.sort(sideNumArray);
			int smallTwo = sideNumArray[0] * sideNumArray[0] + sideNumArray[1]
					* sideNumArray[1];
			int largeOne = sideNumArray[2] * sideNumArray[2];

			// 定理を満たす場合はYES、そうでない場合はNOを出力する
			if (smallTwo == largeOne) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}

		}

	} BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in)); reader new BufferedReader(new InputStreamReader(
				System.in)) int loop = Integer.parseInt(readLine(reader)); loop Integer.parseInt(readLine(reader)) Integer.parseInt Integer readLine(reader) readLine reader for (int i = 0; i < loop; i++) {
			String[] sideArray = readLine(reader).split(" ");
			int[] sideNumArray = new int[sideArray.length];
			for (int j = 0; j < sideNumArray.length; j++) {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			}

			// 三平方の定理を利用してチェックを行う
			Arrays.sort(sideNumArray);
			int smallTwo = sideNumArray[0] * sideNumArray[0] + sideNumArray[1]
					* sideNumArray[1];
			int largeOne = sideNumArray[2] * sideNumArray[2];

			// 定理を満たす場合はYES、そうでない場合はNOを出力する
			if (smallTwo == largeOne) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}

		} int i = 0; int i = 0; i 0 i < loop i loop i++ i++ i {
			String[] sideArray = readLine(reader).split(" ");
			int[] sideNumArray = new int[sideArray.length];
			for (int j = 0; j < sideNumArray.length; j++) {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			}

			// 三平方の定理を利用してチェックを行う
			Arrays.sort(sideNumArray);
			int smallTwo = sideNumArray[0] * sideNumArray[0] + sideNumArray[1]
					* sideNumArray[1];
			int largeOne = sideNumArray[2] * sideNumArray[2];

			// 定理を満たす場合はYES、そうでない場合はNOを出力する
			if (smallTwo == largeOne) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}

		} {
			String[] sideArray = readLine(reader).split(" ");
			int[] sideNumArray = new int[sideArray.length];
			for (int j = 0; j < sideNumArray.length; j++) {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			}

			// 三平方の定理を利用してチェックを行う
			Arrays.sort(sideNumArray);
			int smallTwo = sideNumArray[0] * sideNumArray[0] + sideNumArray[1]
					* sideNumArray[1];
			int largeOne = sideNumArray[2] * sideNumArray[2];

			// 定理を満たす場合はYES、そうでない場合はNOを出力する
			if (smallTwo == largeOne) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}

		} String[] sideArray = readLine(reader).split(" "); sideArray readLine(reader).split(" ") readLine(reader).split readLine(reader) readLine reader " " int[] sideNumArray = new int[sideArray.length]; sideNumArray new int[sideArray.length] sideArray.length sideArray sideArray.length for (int j = 0; j < sideNumArray.length; j++) {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			} int j = 0; int j = 0; j 0 j < sideNumArray.length j sideNumArray.length sideNumArray sideNumArray.length j++ j++ j {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			} {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			} sideNumArray[j] = Integer.parseInt(sideArray[j]) sideNumArray[j] sideNumArray j Integer.parseInt(sideArray[j]) Integer.parseInt Integer sideArray[j] sideArray j Arrays.sort(sideNumArray) Arrays.sort Arrays sideNumArray int smallTwo = sideNumArray[0] * sideNumArray[0] + sideNumArray[1]
					* sideNumArray[1]; smallTwo sideNumArray[0] * sideNumArray[0] + sideNumArray[1]
					* sideNumArray[1] sideNumArray[0] * sideNumArray[0] sideNumArray[0] sideNumArray 0 sideNumArray[0] sideNumArray 0 sideNumArray[1]
					* sideNumArray[1] sideNumArray[1] sideNumArray 1 sideNumArray[1] sideNumArray 1 int largeOne = sideNumArray[2] * sideNumArray[2]; largeOne sideNumArray[2] * sideNumArray[2] sideNumArray[2] sideNumArray 2 sideNumArray[2] sideNumArray 2 if (smallTwo == largeOne) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			} smallTwo == largeOne smallTwo largeOne {
				System.out.println("YES");
			} System.out.println("YES") System.out.println System.out System System.out "YES" {
				System.out.println("NO");
			} System.out.println("NO") System.out.println System.out System System.out "NO" String[] args args /**
	 * ストリームから1行読み込んで、文字列として返す。
	 *
	 * @param reader
	 *            入力ストリーム
	 * @return　文字列
	 */
	private static String readLine(BufferedReader reader) {
		String line = null;
		try {
			line = reader.readLine();
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return line;
	} readLine {
		String line = null;
		try {
			line = reader.readLine();
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return line;
	} String line = null; line null try {
			line = reader.readLine();
		} catch (IOException e) {
			throw new RuntimeException();
		} catch (IOException e) {
			throw new RuntimeException();
		} IOException e {
			throw new RuntimeException();
		} throw new RuntimeException(); new RuntimeException() {
			line = reader.readLine();
		} line = reader.readLine() line reader.readLine() reader.readLine reader return line; line BufferedReader reader reader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

class Main {

	public static void main(String[] args) {

		// ストリームを作成する
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		// データ数を取得する
		int loop = Integer.parseInt(readLine(reader));
		for (int i = 0; i < loop; i++) {
			String[] sideArray = readLine(reader).split(" ");
			int[] sideNumArray = new int[sideArray.length];
			for (int j = 0; j < sideNumArray.length; j++) {
				sideNumArray[j] = Integer.parseInt(sideArray[j]);
			}

			// 三平方の定理を利用してチェックを行う
			Arrays.sort(sideNumArray);
			int smallTwo = sideNumArray[0] * sideNumArray[0] + sideNumArray[1]
					* sideNumArray[1];
			int largeOne = sideNumArray[2] * sideNumArray[2];

			// 定理を満たす場合はYES、そうでない場合はNOを出力する
			if (smallTwo == largeOne) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}

		}

	}

	/**
	 * ストリームから1行読み込んで、文字列として返す。
	 *
	 * @param reader
	 *            入力ストリーム
	 * @return　文字列
	 */
	private static String readLine(BufferedReader reader) {
		String line = null;
		try {
			line = reader.readLine();
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return line;
	}
}