#include <bits/stdc++.h>
using namespace std;
bool done[1000005];
bool comp[1000005];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  ;
  int n;
  cin >> n;
  vector<pair<long long, long long> > v;
  comp[1] = 0;
  for (int i = 2; i <= n; i++) {
    if (!comp[i]) {
      for (int j = 2 * i; j <= n; j += i) {
        comp[j] = 1;
      }
    }
  }
  for (int i = n; i >= 2; i--) {
    if (!comp[i]) {
      int last = 0, now = 0;
      for (int j = i; j <= n; j += i) {
        if (done[j]) continue;
        now++;
      }
      int gg;
      if (now % 2 == 0)
        gg = 0;
      else
        gg = i * 2;
      for (int j = i; j <= n; j += i) {
        if (done[j] || gg == j) continue;
        if (last == 0)
          last = j;
        else {
          v.push_back({last, j});
          done[last] = done[j] = 1;
          last = 0;
        }
      }
    }
  }
  cout << v.size() << '\n';
  for (auto u : v) cout << u.first << ' ' << u.second << '\n';
}
