Alguem pode dar uma ideia
ja fez algo?
pense em fazer um algoritmo do tipo
[code]
int cont =0;
for(int i=2;i<numero;i++){
if (numero % i != 0) {
cont++;
}
}
if(cont > 0) {
“Numero não Primo”
}[/code]
[]s!
Leonardo Gloria
Dá uma olhada no Crivo de Eratóstenes:
Em ingles: http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
Em portugues: http://pt.wikipedia.org/wiki/Crivo_de_Eratóstenes
é um algoritmo bem interessante e rápido.
Tenho um exemplo aqui que eu fiz, nao sei se tem algum jeito mais facil de fazer, mas esse funciona…
[code]package guj.exercicio;
import java.util.Set;
import java.util.TreeSet;
public class Primos {
public static void main(String[] args) {
Set<Integer> lista = teste(10);
for(int i : lista){
System.out.println(i);
}
}
static Set<Integer> teste(int numero){
Set<Integer>lista = new TreeSet<Integer>();
int teste;
for(Integer i = 2; i <= numero; i++){
teste = numero+1;
rotulo:
while(teste > 1){
teste --;
//System.out.println("Teste " +teste);
//System.out.println("i " +i);
if( i % teste != 0 && teste != i && teste != 1 ){
lista.add(i);
}else{
if(teste != i && teste != 1 && i % teste == 0){
lista.remove(i);
break rotulo;
}
}
} // fim while
} // fim for
return lista;
}
}[/code]
Pessoal, não dêem o código pronto, caso contrário ele jamais irá exercitar o raciocínio.
Eu sou meio coração mole, já dei de graça muitos códigos aqui, mas primeiro peço para a pessoa pensar.
Seguinte, como já foi postado, um número natural é primo se for divisível somente por um ou por ele mesmo. Então se você quer fazer um algorítmo que verifique se um número é primo, pegue esse número, coloque-o dentro de um loop (for, por exemplo) e vai verificando se ele é divisível por todos os números abaixo dele até o dois. Se for por algum, ele não será primo. Crie um método boolean para isso, por exemplo.
E o algorítmo de Eratóstenes é muito complicado para ele entender nesse momento, pessoal. Opinão minha.
Tenho esse algorítmo pronto !
Tente aí, se não conseguir, grite !
Já vi que ele está com preguiça de pensar.
Faz assim, também resolve:
package primo;
import javax.swing.JOptionPane;
public class NumeroPrimo
{
public static void main(String[] args)
{
int i;
int numero;
boolean eprimo;
numero = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe o número e ser verificado"));
eprimo = true;
for(i=2;i<numero;i++)
{
if (numero%i==0)
{
eprimo = false;
break;
}
}
if(eprimo == false)
{
JOptionPane.showMessageDialog(null, "O número " + numero + " não é primo");
}
else
{
JOptionPane.showMessageDialog(null, "O número " + numero + " é primo");
}
}
}
Mas o algoritmo que o dudu postou é show de bola !
Como exercício proponho que tu desenvolva um algoritmo que receba dois números, de qualquer forma, seja pelo teclado, JOptionPane, Scanner, etc…
Verifique quais números entre esses dois são primos. Os que forem primos vai listando com System.out.Println().
Pratique agora !
É verdade pessoal ele primeiro tinha que postar a idea ( codigo ) dele e nos iamos apenas corrigir o codigo que ele não acabou de fazer, ou não fez correctamente, senão não estaremos a le ajudar mas sim a le prejudicar.
:idea: , e nem preciso nem postar o codigo porque os manos ja postaram um codigo para ele
com relação ao algoritmo de eratóstenes, é uma maneira bem eficaz de se encontrar números primos. Pode ser que seja um pouco mais complicado de entender, mas tem bastante exemplos.
se vc desejar também, ter uma base matemática boa, recomendo os problemas desse site
ajuda bastante.
uma sugestão também, é tentar estudar uma linguagem puramente funcional, como Haskell. Pois vc dá a definição das coisas, e não como tem que ser feito.
[]'s