func_code_string: #include <bits/stdc++.h>   using namespace std;   long long power(long long a, long long b, long long m) {     a %= m;     long long res = 1;     while (b > 0) {       if (b & 1) res = res * a % m;       a = a * a % m;       b >>= 1;     }     return res;   }   int binomial(int n, int k) {     if (k == 0 || k == n) return 1;     return binomial(n - 1, k - 1) + binomial(n - 1, k);   }   bool prime[10000];   void Sieve(long long int n) {     memset(prime, true, sizeof(prime));     for (int p = 2; p * p <= n; p++) {       if (prime[p] == true) {         for (int i = p * p; i <= n; i += p) prime[i] = false;       }     }   }   vector<int> f;   int print(int n) {     for (int i = 2; i <= sqrt(n); i++) {       if (n % i == 0) {         if (n / i == i)           f.push_back(i);         else {           f.push_back(i);           f.push_back(n / i);         }       }     }     return f.size();   }   pair<int, int> fib(int n) {     if (n == 0) return {0, 1};     auto p = fib(n >> 1);     int c = p.first * (2 * p.second - p.first);     int d = p.first * p.first + p.second * p.second;     if (n & 1)       return {d, c + d};     else       return {c, d};   }   int main() {     int n;     cin >> n;     int k = 0;     vector<int> v;     Sieve(n);     for (int i = 2; i <= n; i++) {       if (prime[i]) {         int q = 1;         while (q <= (n / i)) {           q *= i;           v.push_back(q);         }       }     }     cout << v.size() << endl;     for (int i = 0; i < v.size(); i++) {       cout << v[i] <<    ;     }     cout << endl;   }   