#include <iostream>
using namespace std;

const int N = 1e4 + 10;
int min_prime[N];
int mp[N];

//选择埃式筛是因为可以少开一个数组,优雅一点
void get_min_prime() {
    for (int i = 2; i < N; i ++ ) {
        if (!min_prime[i]) {
            min_prime[i] = i;
            for (int j = i; j < N / i; j ++) {
                if (!min_prime[j * i]) min_prime[j * i] = i;
            }
        }
    }
}
//递推算出每个数的无平方因子部分
void get_mp() {
    mp[1] = 1;
    for (int i = 2; i < N; i ++ ) {
        mp[i] = (min_prime[i / min_prime[i]] == min_prime[i])
                ? mp[i] = mp[i / (min_prime[i] * min_prime[i])]
                : mp[i] = mp[i /min_prime[i]] * min_prime[i];
    }
}

int main() {
    get_min_prime();
    get_mp();
    int n;
    while (cin >> n) {
        if (n == 0) break;
      //无平方因子部分不等于本身说明含有平方因子
        if (mp[n] != n) cout << "Yes" << endl;
        else cout << "No" << endl;
    }
}