#include <bits/stdc++.h>
using namespace std;
const int mx = 1e5 + 5;
int f[mx];
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  vector<pair<int, int>> v;
  for (int i = 3; 2 * i <= n; i += 2) {
    if (f[i] == 0) {
      int c = 0;
      for (int j = i; j <= n; j += i) c += !f[j];
      for (int j = i, l = -1; j <= n; j += i) {
        if ((c & 1) && j == 2 * i) continue;
        if (!f[j]) {
          if (l == -1)
            l = j;
          else {
            v.push_back({l, j});
            l = -1;
          }
        }
        f[j] = 1;
      }
    }
  }
  for (int j = 2, l = -1; j <= n; j += 2) {
    if (!f[j]) {
      if (l == -1)
        l = j;
      else {
        v.push_back({l, j});
        l = -1;
      }
    }
  }
  cout << v.size() << '\n';
  for (auto x : v) cout << x.first << ' ' << x.second << '\n';
}
