func_code_string: #include <bits/stdc++.h>   using namespace std;   int prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31};   vector<int> next(vector<int>& a, int p, int k) {     vector<int> result;     for (long long mul = 1; mul <= (long long)k; mul *= p) {       for (int i = 0; i < a.size(); ++i) {         long long newN = (long long)a[i] * mul;         if (newN <= k) {           result.push_back((int)newN);         }       }     }     return result;   }   int main() {     ios_base::sync_with_stdio(false);     int k;     cin >> k;     int treshold = 2 * k * k;     vector<int> p;     vector<int> a;     a.push_back(1);     int need = (k / 2);     if (k % 2 == 1) need++;     p.push_back(prime[0]);     int ppp = 1;     for (int i = 0; i < p.size(); ++i) {       int old = a.size();       a = next(a, p[i], 2 * k * k);       if (a.size() - old >= need && a.size() >= k)         break;       else         p.push_back(prime[ppp++]);     }     vector<int> result;     vector<int> h(p.size());     int i = a.size() - 1;     for (int ch = (int)p.size() - 1; ch >= 0; ch--) {       for (; h[ch] < need && i >= 0; --i) {         if (a[i] % p[ch] == 0) {           result.push_back(a[i]);           for (int pp = 0; pp < p.size(); ++pp) {             if (a[i] % p[pp] == 0) ++h[pp];           }           a[i] = 31;         }       }     }     while (result.size() < k) {       if (i < 0) i = (a.size() - 1);       if (a[i] != 31) {         result.push_back(a[i]);         a[i] = 31;       }       i--;     }     for (int i = 0; i < result.size(); ++i) cout << result[i] <<    ;     return 0;   }   