#include <bits/stdc++.h>
using namespace std;

#define name "FIBO"
const int MAXX = 2e5+5;

/*
Bài này có 2 cách làm:
+ Cách 1 (Độ phức tạp lớn hơn, code chạy lâu hơn)
    - B1: Nhập n, nhập từng truy vấn (ví dụ: Nhập số X)
    
    - B2: Xét từng truy vấn cộng dần các số của dãy fibonacci a, b, c = a + b
      --> Kiểm tra các số a,b,c có trùng với số X không
      --> Nếu trùng in ra YES, không trùng in ra NO
    
+ Cách 2 (Độ phức tạp O(MAX) (MAX là số fibonacci cuối cùng), code chạy nhanh hơn)
    - B1: Cộng dần các số Fibonacci từ 1 đến MAX (ví dụ bài này là 2*10^5 + 5)
          Tạo mảng F[] (kiểu dữ liệu bool) để kiểm tra số có thuộc dãy Fibonacci không?
          Ví dụ: số 3 thuộc dãy fibonacci thì: F[3] = true;
    
    - B2: Nhập truy vấn (VD: Nhập số X), kiểm tra F[X] == true thì in ra YES
                                         else in ra NO
*/

int n, q, x;
bool F[MAXX];

void setIO(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    if (fopen(name".inp", "r")){
        freopen(name".inp", "r", stdin);
        freopen(name".out", "w", stdout);
    }
}

void tao_mang_Fibonacci(){
    memset(F, false, sizeof(F)); // Đặt tất cả các số trong mảng thành false
    F[1] = true; // Đặt số 1 là true (số 1 thuộc dãy fibonacci)
    int a = 1, b = 1, c = a + b;
    while (c < MAXX){
        F[c] = true; // Đặt c là true (c thuộc dãy fibonacci)
        a = b; b = c;
        c = a + b;
    }
}

void cach2(){
    cin >> x;
    if (F[x] == true) cout << "YES\n"; // Kiểm tra, nếu đúng thì in ra YES
    else cout << "NO\n";
    
}

int main(){
    setIO(); // Nhập xuất file
    cin >> q;
    tao_mang_Fibonacci();
    for (int i = 0; i<q; i++) cach2();
}