O número 11 é primo.
O número 17 é primo.
O número 23 é primo.
O número 29 é primo.
O número 41 é primo.
O número 61600169 é não primo.
O número 106013 é primo.
O número 369601013 é não primo.
Tempo de execução: 17.57217812538147 segundos
O número 11 é primo.
O número 17 é primo.
O número 23 é primo.
O número 29 é primo.
O número 41 é primo.
O número 29213 é não primo.
O número 29145155 é não primo.
O número 369601013 é não primo.
Tempo de execução: 0.0 segundos
O número 11 é primo.
O número 17 é primo.
O número 23 é primo.
O número 29 é primo.
O número 41 é primo.
O número 29213 é não primo.
O número 29145155 é não primo.
O número 369601013 é não primo.
O número 106013 é primo.
Tempo de execução: 0.015574216842651367 segundos é esse o certo é rapido?
import java.util.Set;
import java.util.TreeSet;
/**
*
* @author Prof. Dr. David Buzatto
*/
public class CrivoEratostenes {
public static void main( String[] args ) {
long t = System.currentTimeMillis();
Set<Integer> primos = primos( 500000000 );
System.out.printf( "Tempo: %d segundos\n", ( System.currentTimeMillis() - t ) / 1000 );
System.out.println( "Quantidade de primos: " + primos.size() );
}
public static Set<Integer> primos( int max ) {
Set<Integer> primos = new TreeSet<>();
boolean[] crivo = new boolean[max + 3]; // 0, 1 e max
int limite = (int) Math.sqrt( max );
for ( int i = 2; i <= limite; i++ ) {
if ( !crivo[i] ) {
int c = 2;
while ( i * c <= max ) {
crivo[i*c++] = true;
}
}
}
for ( int i = 2; i <= max; i++ ) {
if ( !crivo[i] ) {
primos.add( i );
}
}
return primos;
}
}
O número 11 é primo.
O número 17 é primo.
O número 23 é primo.
O número 29 é primo.
O número 41 é primo.
O número 29213 é primo.
O número 29145155 é não primo.
O número 59999999999999 é primo.
O número 106013 é primo.
Tempo de execução: 0.0 segundos melhorei o codigo
Sem ver o código e sem saber em que condições foi testado, não tem como saber.
Por exemplo, quantos números foram testados? Usou threads? Rodou em qual hardware? Etc etc etc
Errado, 29213 não é primo, pois é o resultado de 131 x 223.