#include <bits/stdc++.h>
using namespace std;
bool is_prime(int n) {
long long r = 2;
while (r*r <= n) {
if (n % r == 0) return false;
++r;
}
return true;
}
long long inv(int a, int b, int p) {
long long r = 1;
while (b) {
if (b&1) r = (r * a)%p;
a = (a * static_cast<long long>(a))%p;
b >>= 1;
}
return r;
}
int main() {
int n; scanf("%d", &n);
if (n <= 4) {
puts("YES");
if (n == 1) {
puts("1");
} else if (n == 2) {
puts("1\n2");
} else if (n == 3) {
puts("1\n2\n3");
} else {
puts("1\n3\n2\n4");
}
return 0;
}
if (!is_prime(n)) {
puts("NO"); return 0;
}
puts("YES");
puts("1");
for (int i = 2; i <= n; ++i) {
int x = (i * static_cast<long long>(inv(i-1,n-2,n)))%n;
printf("%d\n", x);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGlzX3ByaW1lKGludCBuKSB7Cglsb25nIGxvbmcgciA9IDI7Cgl3aGlsZSAocipyIDw9IG4pIHsKCQlpZiAobiAlIHIgPT0gMCkgcmV0dXJuIGZhbHNlOwoJCSsrcjsKCX0KCXJldHVybiB0cnVlOwp9Cgpsb25nIGxvbmcgaW52KGludCBhLCBpbnQgYiwgaW50IHApIHsKCWxvbmcgbG9uZyByID0gMTsKCXdoaWxlIChiKSB7CgkJaWYgKGImMSkgciA9IChyICogYSklcDsKCQlhID0gKGEgKiBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGEpKSVwOwoJCWIgPj49IDE7Cgl9CglyZXR1cm4gcjsKfQoKaW50IG1haW4oKSB7CglpbnQgbjsgc2NhbmYoIiVkIiwgJm4pOwoJaWYgKG4gPD0gNCkgewoJCXB1dHMoIllFUyIpOwoJCWlmIChuID09IDEpIHsKCQkJcHV0cygiMSIpOwoJCX0gZWxzZSBpZiAobiA9PSAyKSB7CgkJCXB1dHMoIjFcbjIiKTsKCQl9IGVsc2UgaWYgKG4gPT0gMykgewoJCQlwdXRzKCIxXG4yXG4zIik7CgkJfSBlbHNlIHsKCQkJcHV0cygiMVxuM1xuMlxuNCIpOwoJCX0KCQlyZXR1cm4gMDsKCX0KCWlmICghaXNfcHJpbWUobikpIHsKCQlwdXRzKCJOTyIpOyByZXR1cm4gMDsKCX0KCXB1dHMoIllFUyIpOwoJcHV0cygiMSIpOwoJZm9yIChpbnQgaSA9IDI7IGkgPD0gbjsgKytpKSB7CgkJaW50IHggPSAoaSAqIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oaW52KGktMSxuLTIsbikpKSVuOwoJCXByaW50ZigiJWRcbiIsIHgpOwoJfQoJcmV0dXJuIDA7Cn0=