func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAX_PRIMES = 15;   vector<int> primes;   vector<int> num[(1 << MAX_PRIMES) + 5];   bool used[(1 << MAX_PRIMES) + 5];   vector<int> BFS(int sz, int k) {     queue<int> fila;     vector<int> ans;     fila.push((1 << sz) - 1);     used[(1 << sz) - 1] = true;     while (!fila.empty() && ans.size() < k) {       int mask = fila.front();       fila.pop();       for (int i = 0; i < (int)num[mask].size() && ans.size() < k; i++) {         ans.push_back(num[mask][i]);       }       for (int i = 0; i < sz; i++) {         int nmask = mask & (~(1 << i));         int bit = (mask >> i) & 1;         if (bit && !used[nmask]) {           used[nmask] = true;           fila.push(nmask);         }       }     }     return ans;   }   int main(void) {     int k;     int maxi;     vector<int> ans;     scanf(  %d , &k);     maxi = 2 * k * k;     for (int i = 2;; i++) {       bool good = true;       for (int j = 0; j < (int)primes.size(); j++) {         if (i % primes[j] == 0) {           good = false;           break;         }       }       if (good) {         int val = 1;         while (1LL * val * i <= maxi) {           num[1 << primes.size()].push_back(val * i);           val *= i;         }         for (int mask = 1; mask < 1 << primes.size(); mask++) {           int nmask = (1 << primes.size()) | mask;           for (int j = 0; j < num[mask].size(); j++) {             for (int p = 0; p < num[1 << primes.size()].size(); p++) {               if (1LL * num[mask][j] * num[1 << primes.size()][p] > maxi) break;               num[nmask].push_back(num[mask][j] * num[1 << primes.size()][p]);             }           }         }         primes.push_back(i);         int counter = 0;         for (int mask = 1; mask < 1 << primes.size(); mask++) {           counter += num[mask].size();         }         if (counter >= k) {           ans = BFS(primes.size(), k);           break;         }       }     }     for (int i = 0; i < (int)ans.size(); i++) {       if (i != 0) {         printf(   );       }       printf( %d , ans[i]);     }     printf(  n );     return 0;   }   