#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e3 + 20;
int n;
int primo[MAXN];
vector<int> lista;
void crivo(int a) {
  for (int i = 1; i <= a; i++) primo[i] = i;
  for (int i = 2; i * i <= a; i++) {
    if (primo[i] == i) {
      for (int j = i * i; j <= a; j += i) {
        primo[j] = min(primo[j], i);
      }
    }
  }
}
bool calc(int a) {
  int cur = primo[a];
  while (a % cur == 0) {
    a /= cur;
  }
  if (a == 1) return 1;
  return 0;
}
int main() {
  crivo(1e3 + 10);
  scanf("%d", &n);
  for (int i = 2; i <= n; i++) {
    if (calc(i)) lista.push_back(i);
  }
  printf("%d\n", lista.size());
  for (int i = 0; i < lista.size(); i++) {
    printf("%d ", lista[i]);
  }
}
