Faz um bom tempo que não posto nada mas agora estou voltando e irei criar tutoriais básicos sobre Java.
Eu a pouco tempo parei de trabalhar com PHP para começar com Java. Não estou deixando o PHP de lado apenas mudei de linguagem para melhorar meu salário. AS vagas de PHP aqui em Curitiba estão com salários menores que as de Java. Continuo trabalhando com Web e os tutoriais de PHP irão continuar.
Comecei a fazer Pos em Java na UTFPR e na aula de nivelamento foi pedido para criar um algoritmo para números primos.
Encontrei uma boa explicação da lógica dos números primos no Yahoo! Respostas e fiz o código baseado nele.
import java.io.IOException;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Marcelo Korjenioski
*/
public class NumerosPrimos {
public static void main(String[] args) {
System.out.println("Entre com valor");
byte[] b = new byte[10]; //buffer
try {
System.in.read(b);
int numero = Integer.parseInt(new String(b).trim());
for (int i = 0; i <= numero; i++) {
if (primo(i)) {
System.out.println(i);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static boolean primo(int numero) {
boolean resultado = true;
// numero 1 não é primo pois é divisivel apenas por ele mesmo
if(numero <= 1) {
resultado = false;
} else if(numero % 2 == 0 &amp;&amp; numero > 2) {
// Feita a verificacao apenas para otimizar o codigo
// aqui eu descarto todos os numero pares divisiveis por 2 maior que 2 assim so vai sobrar os impares
resultado = false;
} else if(numero % 3 == 0 &amp;&amp; numero > 3) {
// Feita a verificacao apenas para otimizar o codigo
// agora eu tiro todos os numero impares divisiveis por 3 maior que 3.
resultado = false;
}else {
// numero com raiz exata não é primo.
int raiz = (int)Math.sqrt(numero) + 1;
// verifico se o numero é divisivel por algum outro numero menor que ele.
for(int i=3;i<raiz;i+=2) {
// caso divida com algum numero ele não é primo e paro o loop.
if(numero % i ==0) {
resultado = false;
break;
}
}
}
return resultado;
}
}
Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.

Comentários Recentes