Números primos

8 respostas
S

Por favor pessoal, alguém pode me ajudar com isso aqui? Queria fazer um programa que recebesse um número qualquer do usuário e verificasse quais são os números primos existentes abaixo desse número, mas não estou conseguindo fazer...

Tentei algo desse tipo so de deia mas na hora da implementação no for pra verificar de 1 por 1, por exemplo, até o 30, n dá certo.

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--;
        
        }

8 Respostas

jks1903
Steam:
Por favor pessoal, alguém pode me ajudar com isso aqui? Queria fazer um programa que recebesse um número qualquer do usuário e verificasse quais são os números primos existentes abaixo desse número, mas não estou conseguindo fazer...

Tentei algo desse tipo so de deia mas na hora da implementação no for pra verificar de 1 por 1, por exemplo, até o 30, n dá certo.

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--;
        
        }

Não entendi muito bem a sua lógica.

Por exemplo, por que você fez esse for?

for(int i=0; i<=3;i++){ 

...
E

O for serve para “forçar” a barra e dar o resultado que ele quer.

F

As vezes isso pdoe te ajudar, adicionei os numeros primos na lista caso voce precise pra algo.

import java.util.ArrayList;
import java.util.Scanner;


public class Primos {

	public static void main (String args[]){
	    Scanner scan = new Scanner (System.in);      
        
        int numero;  
              
        System.out.println("Digite um Número: ");      
        numero = scan.nextInt();      
        
        /* como verificar se um numero é primo ?
         * Um número primo só pode ser divisível por 1 e por ele 
         * mesmo.
         */
        ArrayList<Integer> numerosPrimos = new ArrayList<>();
        if(numero > 1 ) {
           numerosPrimos.add(1);
           System.out.println(1);
        }
        for (int i = 2 ; i < numero; i++){
        	if (ehPrimo(i)){
        		numerosPrimos.add(i);
        		System.out.println(i);
        	}
        }
	}
	
	public static boolean ehPrimo (int numero){
		
		 for (int i = 2 ; i < numero; i++){
			 if (numero%i == 0) return false;
	     }
		 return true;
	}
}
ViniGodoy
ViniGodoy

É uma boa você ler esse artigo aqui:

S

ViniGodoy:
É uma boa você ler esse artigo aqui:
http://pt.wikipedia.org/wiki/Crivo_de_Eratóstenes

eu dei uma lida, mas pra esse caso ai acho q precisaria usar array, e n posso usar array…

S
free1anr:
As vezes isso pdoe te ajudar, adicionei os numeros primos na lista caso voce precise pra algo.
import java.util.ArrayList;
import java.util.Scanner;


public class Primos {

	public static void main (String args[]){
	    Scanner scan = new Scanner (System.in);      
        
        int numero;  
              
        System.out.println("Digite um Número: ");      
        numero = scan.nextInt();      
        
        /* como verificar se um numero é primo ?
         * Um número primo só pode ser divisível por 1 e por ele 
         * mesmo.
         */
        ArrayList<Integer> numerosPrimos = new ArrayList<>();
        if(numero > 1 ) {
           numerosPrimos.add(1);
           System.out.println(1);
        }
        for (int i = 2 ; i < numero; i++){
        	if (ehPrimo(i)){
        		numerosPrimos.add(i);
        		System.out.println(i);
        	}
        }
	}
	
	public static boolean ehPrimo (int numero){
		
		 for (int i = 2 ; i < numero; i++){
			 if (numero%i == 0) return false;
	     }
		 return true;
	}
}

n posso fazer com array, mas vou ve oq posso pegar daqui, valeu

F

Em maratona compensa mais gerar um array com todos os primos até o numero teto do problema, desta forma o custo da busca é de N.

Criado 11 de janeiro de 2013
Ultima resposta 11 de jan. de 2013
Respostas 8
Participantes 5