GARANTIR DESCONTO

Fórum Números primos em Java #555581

31/05/2016

0

Olá pessoal, tudo bem?

Estou começando na área de programação em Java e me deparei com o seguinte exercício: preciso inserir um método dentro de uma classe que movimenta um robô fictício com base em números primos, ou seja, a posição inicial do robô é 2. Quando eu pedir pra ele andar, o número de casas que ele andará é o próximo número primo, que nesse caso é 3. Quando ele estiver na posição 5, ele andará o próximo número primo, que seria o 7, passando para a posição 12, e assim sucessivamente. Andei pesquisando e achei alguns algoritmos que fazem isso, mas não consegui utilizar nenhum para implementar meu código.

Desde já agradeço e peço desculpas pela pergunta um tanto quanto "primária".

Abraço.
Estêvão Anderle

Estêvão Anderle

Responder

Posts

31/05/2016

Jothaz

Fica muito difícil ajudar, pois você não postou nem uma ideia de como você pretende resolver o problema.

Então segue um exemplo simples de como verificar se um número é Primo. Basta você adaptar a lógica do seu algorítimo.
No exemplo é feito um loop, mas basta adaptar e passar o somente o número que você quer testar.
Existem dezenas de formas de fazer esta verificação espero que lhe dê uma luz.

public class Exemplo {
    public static void main(String[] args) {
		int n = 100;  
          
        for(int i = 1; i <= n; i++) 
		{  
			
			if (isPrime(i))
			{
				System.out.println(i+ " primo");
			}
        }  
    }
	
	public static boolean isPrime(long number) {
		number = Math.abs(number);
		if (number % 2 == 0) {
			return false;
		}
		for (long i = 3; i * i <= number; i += 2) {
			if (number % i == 0) {
				return false;
			}
		}
		return true;
	}
}
Responder

Gostei + 0

31/05/2016

Estêvão Anderle

Fica muito difícil ajudar, pois você não postou nem uma ideia de como você pretende resolver o problema.

Então segue um exemplo simples de como verificar se um número é Primo. Basta você adaptar a lógica do seu algorítimo.
No exemplo é feito um loop, mas basta adaptar e passar o somente o número que você quer testar.
Existem dezenas de formas de fazer esta verificação espero que lhe dê uma luz.

public class Exemplo {
    public static void main(String[] args) {
		int n = 100;  
          
        for(int i = 1; i <= n; i++) 
		{  
			
			if (isPrime(i))
			{
				System.out.println(i+ " primo");
			}
        }  
    }
	
	public static boolean isPrime(long number) {
		number = Math.abs(number);
		if (number % 2 == 0) {
			return false;
		}
		for (long i = 3; i * i <= number; i += 2) {
			if (number % i == 0) {
				return false;
			}
		}
		return true;
	}
}


Te peço desculpas sobre, acabei escrevendo isso um pouco na pressa e sou bem novo, tanto em Java, quando aqui no DevMedia. Então, eu não tenho muita ideia de como fazer isso... Eu estava vendo alguns exemplos e acredito que ele deveria fazer o seguinte: quando é encontrado um número primo, ele é armazenado e após, aplicado na regra. Quando o programa fosse executado ou o método novamente, o sistema percorreria toda verificação até achar outro, e esse novo número achado substituiria o antigo, aplicando na regra, e assim sucessivamente. Não sei se fui muito claro novamente. Se isso que você postou se enquadra com esse meu exemplo beleza, senão, eu posto aqui o que eu já tenho pronto na classe.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar