#include <bits/stdc++.h>
using namespace std;
bool IsPrime(int x) {
  if (x == 2) return true;
  if (x < 2) return false;
  if (x % 2 == 0) return false;
  for (int y = 3; y * y <= x; y += 2)
    if (x % y == 0) return false;
  return true;
}
bool IsPermutation(vector<int> v) {
  sort(v.begin(), v.end());
  for (int i = 0; i < v.size(); i++)
    if (v[i] != i + 1) return false;
  return true;
}
int Mul(int x, int y, const int& Mod) { return (long long)x * y % Mod; }
int Fp(int x, int y, const int& Mod) {
  if (!y) return 1;
  if (y & 1) return Mul(x, Fp(x, y - 1, Mod), Mod);
  return Fp(Mul(x, x, Mod), y >> 1, Mod);
}
int Inv(int x, int Mod) { return Fp(x, Mod - 2, Mod); }
int main() {
  int n;
  cin >> n;
  if (n == 1) {
    puts("YES");
    puts("1");
    return 0;
  }
  if (n == 4) {
    puts("YES");
    puts("1");
    puts("3");
    puts("2");
    puts("4");
    return 0;
  }
  if (!IsPrime(n)) return 0 * puts("NO");
  vector<int> Res;
  Res.push_back(1);
  for (int x = 2; x < n; x++) {
    int y = Mul(x, Inv(x - 1, n), n);
    Res.push_back(y);
  }
  Res.push_back(n);
  if (!IsPermutation(Res)) return 0 * puts("NO");
  puts("YES");
  for (int x : Res) printf("%d\n", x);
  puts("");
}
