func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n;   bool use[100000 + 10], b[100000 + 10];   int a[100000 + 10], Now;   int Ans;   int L[100000 + 10], R[100000 + 10], CNT = 0;   int main() {     int Cnt = 0;     scanf( %I64d , &n);     for (long long i = 3; i <= n; i += 2) {       if (b[i]) continue;       Now = 1;       a[1] = i;       for (long long j = 2 * i; j <= n; j += i) {         b[j] = false;         if (use[j]) continue;         a[++Now] = j;       }       if (Now == 1) continue;       if (Now % 2 == 0) {         for (int i = 1; i + 1 <= Now; i += 2) {           Ans++;           L[Ans] = a[i];           use[a[i]] = true;           R[Ans] = a[i + 1];           use[a[i + 1]] = true;         }       } else {         Ans++;         L[Ans] = a[1];         use[a[1]] = true;         R[Ans] = a[3];         use[a[3]] = true;         for (int i = 4; i + 1 <= Now; i += 2) {           Ans++;           L[Ans] = a[i];           use[a[i]] = true;           R[Ans] = a[i + 1];           use[a[i + 1]] = true;         }       }     }     Now = 0;     for (long long j = 2; j <= n; j += 2) {       b[j] = false;       if (use[j]) continue;       a[++Now] = j;     }     if (Now % 2 == 0) {       for (int i = 1; i + 1 <= Now; i += 2) {         Ans++;         L[Ans] = a[i];         use[a[i]] = true;         R[Ans] = a[i + 1];         use[a[i + 1]] = true;       }     } else {       if (Now != 1) {         Ans++;         L[Ans] = a[1];         use[a[1]] = true;         R[Ans] = a[3];         use[a[3]] = true;         for (int i = 4; i + 1 <= Now; i += 2) {           Ans++;           L[Ans] = a[i];           use[a[i]] = true;           R[Ans] = a[i + 1];           use[a[i + 1]] = true;         }       }     }     printf( %d n , Ans);     for (int i = 1; i <= Ans; i++) printf( %d %d n , L[i], R[i]);     return 0;   }   