import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		try (Scanner sc = new Scanner(System.in)) {
			final int n = sc.nextInt();
			while (sc.hasNext()) {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			}
		}
	}
} import java.util.Arrays; Arrays java.util import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		try (Scanner sc = new Scanner(System.in)) {
			final int n = sc.nextInt();
			while (sc.hasNext()) {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			}
		}
	}
} Main public static void main(String[] args) {
		try (Scanner sc = new Scanner(System.in)) {
			final int n = sc.nextInt();
			while (sc.hasNext()) {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			}
		}
	} main {
		try (Scanner sc = new Scanner(System.in)) {
			final int n = sc.nextInt();
			while (sc.hasNext()) {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			}
		}
	} try (Scanner sc = new Scanner(System.in)) {
			final int n = sc.nextInt();
			while (sc.hasNext()) {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			}
		} {
			final int n = sc.nextInt();
			while (sc.hasNext()) {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			}
		} Scanner sc = new Scanner(System.in) Scanner sc = new Scanner(System.in) new Scanner(System.in) final int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc while (sc.hasNext()) {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			} sc.hasNext() sc.hasNext sc {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			} int[] x = new int[3]; x new int[3] 3 x[0] = sc.nextInt() x[0] x 0 sc.nextInt() sc.nextInt sc x[1] = sc.nextInt() x[1] x 1 sc.nextInt() sc.nextInt sc x[2] = sc.nextInt() x[2] x 2 sc.nextInt() sc.nextInt sc Arrays.sort(x) Arrays.sort Arrays x boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]); isTriangle (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]) (x[0] * x[0]) + (x[1] * x[1]) (x[0] * x[0]) x[0] x 0 x[0] x 0 (x[1] * x[1]) x[1] x 1 x[1] x 1 (x[2] * x[2]) x[2] x 2 x[2] x 2 System.out.println(isTriangle ? "YES" : "NO") System.out.println System.out System System.out isTriangle ? "YES" : "NO" isTriangle "YES" "NO" String[] args args public class Main {
	public static void main(String[] args) {
		try (Scanner sc = new Scanner(System.in)) {
			final int n = sc.nextInt();
			while (sc.hasNext()) {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			}
		}
	}
} public class Main {
	public static void main(String[] args) {
		try (Scanner sc = new Scanner(System.in)) {
			final int n = sc.nextInt();
			while (sc.hasNext()) {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			}
		}
	}
} Main
import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		try (Scanner sc = new Scanner(System.in)) {
			final int n = sc.nextInt();
			while (sc.hasNext()) {
				int[] x = new int[3];
				x[0] = sc.nextInt();
				x[1] = sc.nextInt();
				x[2] = sc.nextInt();
				Arrays.sort(x);
				boolean isTriangle = (x[0] * x[0]) + (x[1] * x[1]) == (x[2] * x[2]);
				System.out.println(isTriangle ? "YES" : "NO");
			}
		}
	}
}