import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

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 line = br.readLine();

			// 三辺の長さをリストに格納し、ソート
			List<Integer> sideList = new ArrayList<Integer>();
			String[] input = line.split(" ");
			sideList.add(Integer.parseInt(input[0]));
			sideList.add(Integer.parseInt(input[1]));
			sideList.add(Integer.parseInt(input[2]));
			Collections.sort(sideList);

			if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				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) {
		return (side1 * side1 == side2 * side2 + side3 * side3);
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayList; ArrayList java.util import java.util.Collections; Collections java.util import java.util.List; List java.util 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 line = br.readLine();

			// 三辺の長さをリストに格納し、ソート
			List<Integer> sideList = new ArrayList<Integer>();
			String[] input = line.split(" ");
			sideList.add(Integer.parseInt(input[0]));
			sideList.add(Integer.parseInt(input[1]));
			sideList.add(Integer.parseInt(input[2]));
			Collections.sort(sideList);

			if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				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) {
		return (side1 * side1 == side2 * side2 + side3 * side3);
	}
} 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 line = br.readLine();

			// 三辺の長さをリストに格納し、ソート
			List<Integer> sideList = new ArrayList<Integer>();
			String[] input = line.split(" ");
			sideList.add(Integer.parseInt(input[0]));
			sideList.add(Integer.parseInt(input[1]));
			sideList.add(Integer.parseInt(input[2]));
			Collections.sort(sideList);

			if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				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 line = br.readLine();

			// 三辺の長さをリストに格納し、ソート
			List<Integer> sideList = new ArrayList<Integer>();
			String[] input = line.split(" ");
			sideList.add(Integer.parseInt(input[0]));
			sideList.add(Integer.parseInt(input[1]));
			sideList.add(Integer.parseInt(input[2]));
			Collections.sort(sideList);

			if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				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 line = br.readLine();

			// 三辺の長さをリストに格納し、ソート
			List<Integer> sideList = new ArrayList<Integer>();
			String[] input = line.split(" ");
			sideList.add(Integer.parseInt(input[0]));
			sideList.add(Integer.parseInt(input[1]));
			sideList.add(Integer.parseInt(input[2]));
			Collections.sort(sideList);

			if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				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 line = br.readLine();

			// 三辺の長さをリストに格納し、ソート
			List<Integer> sideList = new ArrayList<Integer>();
			String[] input = line.split(" ");
			sideList.add(Integer.parseInt(input[0]));
			sideList.add(Integer.parseInt(input[1]));
			sideList.add(Integer.parseInt(input[2]));
			Collections.sort(sideList);

			if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		} {

			String line = br.readLine();

			// 三辺の長さをリストに格納し、ソート
			List<Integer> sideList = new ArrayList<Integer>();
			String[] input = line.split(" ");
			sideList.add(Integer.parseInt(input[0]));
			sideList.add(Integer.parseInt(input[1]));
			sideList.add(Integer.parseInt(input[2]));
			Collections.sort(sideList);

			if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		} String line = br.readLine(); line br.readLine() br.readLine br List<Integer> sideList = new ArrayList<Integer>(); sideList new ArrayList<Integer>() String[] input = line.split(" "); input line.split(" ") line.split line " " sideList.add(Integer.parseInt(input[0])) sideList.add sideList Integer.parseInt(input[0]) Integer.parseInt Integer input[0] input 0 sideList.add(Integer.parseInt(input[1])) sideList.add sideList Integer.parseInt(input[1]) Integer.parseInt Integer input[1] input 1 sideList.add(Integer.parseInt(input[2])) sideList.add sideList Integer.parseInt(input[2]) Integer.parseInt Integer input[2] input 2 Collections.sort(sideList) Collections.sort Collections sideList if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			} isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0)) isRightTriangle sideList.get(2) sideList.get sideList 2 sideList.get(1) sideList.get sideList 1 sideList.get(0) sideList.get sideList 0 {
				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) {
		return (side1 * side1 == side2 * side2 + side3 * side3);
	} isRightTriangle {
		return (side1 * side1 == side2 * side2 + side3 * side3);
	} return (side1 * side1 == side2 * side2 + side3 * side3); (side1 * side1 == side2 * side2 + side3 * side3) side1 * side1 side1 side1 side2 * side2 + side3 * side3 side2 * side2 side2 side2 side3 * side3 side3 side3 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 line = br.readLine();

			// 三辺の長さをリストに格納し、ソート
			List<Integer> sideList = new ArrayList<Integer>();
			String[] input = line.split(" ");
			sideList.add(Integer.parseInt(input[0]));
			sideList.add(Integer.parseInt(input[1]));
			sideList.add(Integer.parseInt(input[2]));
			Collections.sort(sideList);

			if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				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) {
		return (side1 * side1 == side2 * side2 + 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 line = br.readLine();

			// 三辺の長さをリストに格納し、ソート
			List<Integer> sideList = new ArrayList<Integer>();
			String[] input = line.split(" ");
			sideList.add(Integer.parseInt(input[0]));
			sideList.add(Integer.parseInt(input[1]));
			sideList.add(Integer.parseInt(input[2]));
			Collections.sort(sideList);

			if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				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) {
		return (side1 * side1 == side2 * side2 + side3 * side3);
	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

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 line = br.readLine();

			// 三辺の長さをリストに格納し、ソート
			List<Integer> sideList = new ArrayList<Integer>();
			String[] input = line.split(" ");
			sideList.add(Integer.parseInt(input[0]));
			sideList.add(Integer.parseInt(input[1]));
			sideList.add(Integer.parseInt(input[2]));
			Collections.sort(sideList);

			if (isRightTriangle(sideList.get(2), sideList.get(1),
					sideList.get(0))) {
				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) {
		return (side1 * side1 == side2 * side2 + side3 * side3);
	}
}