#include <bits/stdc++.h>
using namespace std;
int su[100010];
int tot = 0;
int b[100010];
int ans[100010];
int a[100010];
int n;
int cunt = 0;
int main() {
  cin >> n;
  for (int i = 2; i <= n; i++)
    if (!b[i]) {
      su[++tot] = i;
      for (int j = i; j <= n; j += i) b[j] = 1;
    }
  memset(b, 0, sizeof(b));
  for (int i = tot; i >= 2; i--) {
    int cnt = 0;
    int tt = 0;
    for (int j = su[i]; j <= n; j += su[i])
      if (!b[j]) cnt++;
    if (cnt == 1) continue;
    if (cnt % 2 == 1) tt = 2;
    cnt = 0;
    for (int j = su[i]; j <= n; j += su[i])
      if (j != tt * su[i] && !b[j]) {
        b[j] = 1;
        a[++cnt] = j;
      }
    for (int j = 1; j <= cnt; j += 2) {
      ans[++cunt] = a[j];
      ans[++cunt] = a[j + 1];
    }
  }
  for (int i = 1; i <= n / 2; i++)
    if (!b[i * 2]) ans[++cunt] = i * 2;
  if (cunt % 2 == 1) cunt--;
  printf("%d\n", cunt / 2);
  if (cunt <= 1) return 0;
  for (int i = 1; i <= cunt; i += 2) printf("%d %d\n", ans[i], ans[i + 1]);
  return 0;
}
