/**
 * @(#)portas.java
 *
 *
 * @author Henrique D B Louro
 *
 * @version 1.00 2010/8/29
 *
 * Tempo Processamento: 26.206
 */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class portas {

    public static void main(String[] args) throws IOException {

		long tempoInicial = System.currentTimeMillis();

        String linha="";
		String saida="";

        int val=0;

        BufferedReader entrada;

        try {

            entrada = new BufferedReader (new InputStreamReader(System.in));

            while ((linha = entrada.readLine()) != null) {

                val = Integer.parseInt(linha);

                if (val==0){
                    break;
                }

                boolean portas[] = new boolean[val+1];

                for(int x=1;x<=val;x++){
                    portas[x] = true;
                }// fecha o for

                for(int x=2;x<=val;x++){//descendentes
                    for(int y=x;y<=val;y+=x){//portas
                        if (portas[y]){
                            portas[y] = false;
                        }else{
                            portas[y] = true;
                        }//fecha if/else
                    }// fecha for portas
                }// fecha for descendentes

				saida = "";

                for(int x=1;x<=val;x++){
                    if (portas[x]){
						saida += x+" ";
                    }
                }// fecha o for

                System.out.println(saida.trim());

            } // fecha o while

        } // fecha o try
        catch (Exception e) {
            System.out.println("Ocorreu um erro durante a leitura do arquivo!\n"+e);
            System.exit(0);
        } // fecha o catch

        long tempoFinal = System.currentTimeMillis();

		System.out.println( tempoFinal - tempoInicial );

    }// fecha main
}
