Números Primos

Eu queria saber qual é a melhor forma de implementar um programa no qual o usuário passasse um número qualquer e eu imprimisse na tela pra ele todos os números q são primos abaixo do número digitado… Eu implementei aqui o cálculo para um único número(ex.: o usuário passou o número e eu consegui verificar se é ou não primo), mas nesse caso eu queria verificar TODOS os números abaixo do passado pelo usuário e imprimir os primos. Algúem ajuda?

Fiz isso.

	Scanner scan = new Scanner (System.in);    
        
        int numero, elemesmo=0, resto, contador=0;    
            
        System.out.println("Digite um Número: ");    
        numero = scan.nextInt();    
           
        for(int i=0; i<=3;i++){
        	
        	elemesmo=0;
        	
          while ( numero >= elemesmo){  
             ++elemesmo;  
               
             resto = numero % elemesmo;   
               
             if ( resto == 0){  
                     contador++;  
             }  
           
               
          }  
          if ( contador == 2)   {  
               
             System.out.println("O Número "+numero+" é primo");  
          }  
          else  
          {  
             System.out.println("Numéro "+numero+" não é primo");  
          }           
	
        numero--;
        
        }
        }    

		}

http://pt.wikipedia.org/wiki/Crivo_de_Eratóstenes

Procure aqui no GUJ uma classe chamada “Sieve”, você pode usá-la para implementar o que você quer.