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

public class Main {

	/**
	 * <p>
	 * 与えられた三辺で直角三角形が作れるかを判定する。
	 * </p>
	 *
	 * @param args
	 *            利用しない。
	 * @throws IOException
	 */
	public static void main(String[] args) throws NumberFormatException,
			IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int lineCount = Integer.parseInt(br.readLine());
		for (int i = 0; i < lineCount; i++) {

			String[] input = br.readLine().split(" ");
			int side1 = Integer.parseInt(input[0]);
			int side2 = Integer.parseInt(input[1]);
			int side3 = Integer.parseInt(input[2]);

			if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		}
	}

	/**
	 * 三辺の長さから、直角三角形であるかどうかを判定する。<br>
	 * 注意：第一引数に最も長い辺を与えること。
	 *
	 * @param side1
	 *            辺1
	 * @param side2
	 *            辺2
	 * @param side3
	 *            辺3
	 * @return 直角三角形であるかどうか
	 */
	private static boolean isRightTriangle(int side1, int side2, int side3) {

		boolean isRightTriangle = false;
		if (side1 >= side2 && side1 >= side3) {
			isRightTriangle = (side1 * side1 == side2 * side2 + side3 * side3);
		} else if (side2 >= side1 && side2 >= side3) {
			isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3);
		} else {
			isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2);
		}

		return isRightTriangle;
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {

	/**
	 * <p>
	 * 与えられた三辺で直角三角形が作れるかを判定する。
	 * </p>
	 *
	 * @param args
	 *            利用しない。
	 * @throws IOException
	 */
	public static void main(String[] args) throws NumberFormatException,
			IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int lineCount = Integer.parseInt(br.readLine());
		for (int i = 0; i < lineCount; i++) {

			String[] input = br.readLine().split(" ");
			int side1 = Integer.parseInt(input[0]);
			int side2 = Integer.parseInt(input[1]);
			int side3 = Integer.parseInt(input[2]);

			if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		}
	}

	/**
	 * 三辺の長さから、直角三角形であるかどうかを判定する。<br>
	 * 注意：第一引数に最も長い辺を与えること。
	 *
	 * @param side1
	 *            辺1
	 * @param side2
	 *            辺2
	 * @param side3
	 *            辺3
	 * @return 直角三角形であるかどうか
	 */
	private static boolean isRightTriangle(int side1, int side2, int side3) {

		boolean isRightTriangle = false;
		if (side1 >= side2 && side1 >= side3) {
			isRightTriangle = (side1 * side1 == side2 * side2 + side3 * side3);
		} else if (side2 >= side1 && side2 >= side3) {
			isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3);
		} else {
			isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2);
		}

		return isRightTriangle;
	}
} Main /**
	 * <p>
	 * 与えられた三辺で直角三角形が作れるかを判定する。
	 * </p>
	 *
	 * @param args
	 *            利用しない。
	 * @throws IOException
	 */
	public static void main(String[] args) throws NumberFormatException,
			IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int lineCount = Integer.parseInt(br.readLine());
		for (int i = 0; i < lineCount; i++) {

			String[] input = br.readLine().split(" ");
			int side1 = Integer.parseInt(input[0]);
			int side2 = Integer.parseInt(input[1]);
			int side3 = Integer.parseInt(input[2]);

			if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		}
	} main {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int lineCount = Integer.parseInt(br.readLine());
		for (int i = 0; i < lineCount; i++) {

			String[] input = br.readLine().split(" ");
			int side1 = Integer.parseInt(input[0]);
			int side2 = Integer.parseInt(input[1]);
			int side3 = Integer.parseInt(input[2]);

			if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		}
	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) int lineCount = Integer.parseInt(br.readLine()); lineCount Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br for (int i = 0; i < lineCount; i++) {

			String[] input = br.readLine().split(" ");
			int side1 = Integer.parseInt(input[0]);
			int side2 = Integer.parseInt(input[1]);
			int side3 = Integer.parseInt(input[2]);

			if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		} int i = 0; int i = 0; i 0 i < lineCount i lineCount i++ i++ i {

			String[] input = br.readLine().split(" ");
			int side1 = Integer.parseInt(input[0]);
			int side2 = Integer.parseInt(input[1]);
			int side3 = Integer.parseInt(input[2]);

			if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		} {

			String[] input = br.readLine().split(" ");
			int side1 = Integer.parseInt(input[0]);
			int side2 = Integer.parseInt(input[1]);
			int side3 = Integer.parseInt(input[2]);

			if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		} String[] input = br.readLine().split(" "); input br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int side1 = Integer.parseInt(input[0]); side1 Integer.parseInt(input[0]) Integer.parseInt Integer input[0] input 0 int side2 = Integer.parseInt(input[1]); side2 Integer.parseInt(input[1]) Integer.parseInt Integer input[1] input 1 int side3 = Integer.parseInt(input[2]); side3 Integer.parseInt(input[2]) Integer.parseInt Integer input[2] input 2 if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			} isRightTriangle(side1, side2, side3) isRightTriangle side1 side2 side3 {
				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 /**
	 * 三辺の長さから、直角三角形であるかどうかを判定する。<br>
	 * 注意：第一引数に最も長い辺を与えること。
	 *
	 * @param side1
	 *            辺1
	 * @param side2
	 *            辺2
	 * @param side3
	 *            辺3
	 * @return 直角三角形であるかどうか
	 */
	private static boolean isRightTriangle(int side1, int side2, int side3) {

		boolean isRightTriangle = false;
		if (side1 >= side2 && side1 >= side3) {
			isRightTriangle = (side1 * side1 == side2 * side2 + side3 * side3);
		} else if (side2 >= side1 && side2 >= side3) {
			isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3);
		} else {
			isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2);
		}

		return isRightTriangle;
	} isRightTriangle {

		boolean isRightTriangle = false;
		if (side1 >= side2 && side1 >= side3) {
			isRightTriangle = (side1 * side1 == side2 * side2 + side3 * side3);
		} else if (side2 >= side1 && side2 >= side3) {
			isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3);
		} else {
			isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2);
		}

		return isRightTriangle;
	} boolean isRightTriangle = false; isRightTriangle false if (side1 >= side2 && side1 >= side3) {
			isRightTriangle = (side1 * side1 == side2 * side2 + side3 * side3);
		} else if (side2 >= side1 && side2 >= side3) {
			isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3);
		} else {
			isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2);
		} side1 >= side2 && side1 >= side3 side1 >= side2 side1 side2 side1 >= side3 side1 side3 {
			isRightTriangle = (side1 * side1 == side2 * side2 + side3 * side3);
		} isRightTriangle = (side1 * side1 == side2 * side2 + side3 * side3) isRightTriangle (side1 * side1 == side2 * side2 + side3 * side3) side1 * side1 side1 side1 side2 * side2 + side3 * side3 side2 * side2 side2 side2 side3 * side3 side3 side3 if (side2 >= side1 && side2 >= side3) {
			isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3);
		} else {
			isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2);
		} side2 >= side1 && side2 >= side3 side2 >= side1 side2 side1 side2 >= side3 side2 side3 {
			isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3);
		} isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3) isRightTriangle (side2 * side2 == side1 * side1 + side3 * side3) side2 * side2 side2 side2 side1 * side1 + side3 * side3 side1 * side1 side1 side1 side3 * side3 side3 side3 {
			isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2);
		} isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2) isRightTriangle (side3 * side3 == side1 * side1 + side2 * side2) side3 * side3 side3 side3 side1 * side1 + side2 * side2 side1 * side1 side1 side1 side2 * side2 side2 side2 return isRightTriangle; isRightTriangle int side1 side1 int side2 side2 int side3 side3 public class Main {

	/**
	 * <p>
	 * 与えられた三辺で直角三角形が作れるかを判定する。
	 * </p>
	 *
	 * @param args
	 *            利用しない。
	 * @throws IOException
	 */
	public static void main(String[] args) throws NumberFormatException,
			IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int lineCount = Integer.parseInt(br.readLine());
		for (int i = 0; i < lineCount; i++) {

			String[] input = br.readLine().split(" ");
			int side1 = Integer.parseInt(input[0]);
			int side2 = Integer.parseInt(input[1]);
			int side3 = Integer.parseInt(input[2]);

			if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		}
	}

	/**
	 * 三辺の長さから、直角三角形であるかどうかを判定する。<br>
	 * 注意：第一引数に最も長い辺を与えること。
	 *
	 * @param side1
	 *            辺1
	 * @param side2
	 *            辺2
	 * @param side3
	 *            辺3
	 * @return 直角三角形であるかどうか
	 */
	private static boolean isRightTriangle(int side1, int side2, int side3) {

		boolean isRightTriangle = false;
		if (side1 >= side2 && side1 >= side3) {
			isRightTriangle = (side1 * side1 == side2 * side2 + side3 * side3);
		} else if (side2 >= side1 && side2 >= side3) {
			isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3);
		} else {
			isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2);
		}

		return isRightTriangle;
	}
} public class Main {

	/**
	 * <p>
	 * 与えられた三辺で直角三角形が作れるかを判定する。
	 * </p>
	 *
	 * @param args
	 *            利用しない。
	 * @throws IOException
	 */
	public static void main(String[] args) throws NumberFormatException,
			IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int lineCount = Integer.parseInt(br.readLine());
		for (int i = 0; i < lineCount; i++) {

			String[] input = br.readLine().split(" ");
			int side1 = Integer.parseInt(input[0]);
			int side2 = Integer.parseInt(input[1]);
			int side3 = Integer.parseInt(input[2]);

			if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		}
	}

	/**
	 * 三辺の長さから、直角三角形であるかどうかを判定する。<br>
	 * 注意：第一引数に最も長い辺を与えること。
	 *
	 * @param side1
	 *            辺1
	 * @param side2
	 *            辺2
	 * @param side3
	 *            辺3
	 * @return 直角三角形であるかどうか
	 */
	private static boolean isRightTriangle(int side1, int side2, int side3) {

		boolean isRightTriangle = false;
		if (side1 >= side2 && side1 >= side3) {
			isRightTriangle = (side1 * side1 == side2 * side2 + side3 * side3);
		} else if (side2 >= side1 && side2 >= side3) {
			isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3);
		} else {
			isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2);
		}

		return isRightTriangle;
	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	/**
	 * <p>
	 * 与えられた三辺で直角三角形が作れるかを判定する。
	 * </p>
	 *
	 * @param args
	 *            利用しない。
	 * @throws IOException
	 */
	public static void main(String[] args) throws NumberFormatException,
			IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int lineCount = Integer.parseInt(br.readLine());
		for (int i = 0; i < lineCount; i++) {

			String[] input = br.readLine().split(" ");
			int side1 = Integer.parseInt(input[0]);
			int side2 = Integer.parseInt(input[1]);
			int side3 = Integer.parseInt(input[2]);

			if (isRightTriangle(side1, side2, side3)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		}
	}

	/**
	 * 三辺の長さから、直角三角形であるかどうかを判定する。<br>
	 * 注意：第一引数に最も長い辺を与えること。
	 *
	 * @param side1
	 *            辺1
	 * @param side2
	 *            辺2
	 * @param side3
	 *            辺3
	 * @return 直角三角形であるかどうか
	 */
	private static boolean isRightTriangle(int side1, int side2, int side3) {

		boolean isRightTriangle = false;
		if (side1 >= side2 && side1 >= side3) {
			isRightTriangle = (side1 * side1 == side2 * side2 + side3 * side3);
		} else if (side2 >= side1 && side2 >= side3) {
			isRightTriangle = (side2 * side2 == side1 * side1 + side3 * side3);
		} else {
			isRightTriangle = (side3 * side3 == side1 * side1 + side2 * side2);
		}

		return isRightTriangle;
	}
}