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.
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
Curtir tópico
+ 0
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.
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.
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
Clique aqui para fazer login e interagir na Comunidade :)