#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void read(T &x) {
  int f = 0;
  x = 0;
  char ch = getchar();
  for (; !isdigit(ch); ch = getchar()) f |= (ch == '-');
  for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';
  if (f) x = -x;
}
const int N = 1005;
int p[N], cnt;
int n, x;
void out(int a, int b) {
  printf("%d %d\n", a, b);
  swap(p[a], p[b]), ++cnt;
}
void solve(int x) {
  for (int i = (x); i >= (1); i--) out(i, x + 1);
  for (int i = (x); i >= (1); i--) out(i, x + 2);
  out(x + 1, x + 3), out(x + 2, x + 4);
  for (int i = (1); i <= (x); i++) out(i, x + 4);
  for (int i = (1); i <= (x); i++) out(i, x + 3);
  out(x + 1, x + 4), out(x + 2, x + 3);
  out(x + 1, x + 2), out(x + 3, x + 4);
}
int main() {
  read(n);
  if (n % 4 == 2 || n % 4 == 3) {
    puts("NO");
    return 0;
  }
  puts("YES");
  for (int i = (1); i <= (n); i++) p[i] = i;
  for (int x = n % 4; x < n; x += 4) solve(x);
  for (int i = (1); i <= (n); i++) assert(p[i] == i);
  assert(cnt == n * (n - 1) / 2);
  return 0;
}
