#include <bits/stdc++.h>
using namespace std;
int IN() {
  int c, f, x;
  while (!isdigit(c = getchar()) && c != '-')
    ;
  c == '-' ? (f = 1, x = 0) : (f = 0, x = c - '0');
  while (isdigit(c = getchar())) x = (x << 1) + (x << 3) + c - '0';
  return !f ? x : -x;
}
int n;
vector<pair<int, int> > res;
void work(int i, int j) {
  if (i + 1 == j && i % 2 == 1 && n % 4 == 1) {
    res.push_back(make_pair(i, n));
    res.push_back(make_pair(i, j));
    res.push_back(make_pair(j, n));
  } else {
    res.push_back(make_pair(i, j));
  }
}
int main() {
  n = IN();
  if (n % 4 > 1) {
    puts("NO");
    return 0;
  }
  for (int i = 0; i + 4 <= n; i += 4) {
    work(i + 1, i + 2);
    work(i + 1, i + 3);
    work(i + 2, i + 4);
    work(i + 1, i + 4);
    work(i + 2, i + 3);
    work(i + 3, i + 4);
  }
  for (int i = 0; i + 4 <= n; i += 4)
    for (int j = i + 4; j + 4 <= n; j += 4) {
      work(i + 4, j + 3);
      work(i + 3, j + 3);
      work(i + 4, j + 2);
      work(i + 1, j + 2);
      work(i + 2, j + 4);
      work(i + 3, j + 4);
      work(i + 2, j + 3);
      work(i + 2, j + 2);
      work(i + 4, j + 1);
      work(i + 4, j + 4);
      work(i + 1, j + 3);
      work(i + 1, j + 4);
      work(i + 3, j + 1);
      work(i + 3, j + 2);
      work(i + 2, j + 1);
      work(i + 1, j + 1);
    }
  puts("YES");
  for (pair<int, int> i : res) printf("%d %d\n", i.first, i.second);
}
