Qual o melhor modo de testar se um número é primo?

init:
deps-jar:
Compiling 1 source file to C:\Users\Administrador\Documents\NetBeansProjects\GujForunsTest\build\classes
compile-single:
run-single:
142913828922
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

posta o teu código… aki o meu demorou mais o.O, com o Crivo

[code] public static final int[] primos = new int[1000000];
public static int next = 0;

public static boolean isPrimoOptimizade(int numero) {
    if (numero < 2)
        return false;
    int count = 0;
    while(primos[count] != 0 && //ou seja não há mais primos a testar
                 primos[count]*2 <= numero) { //com certeza não é divisivel pelos proximos primos...
        if (numero%primos[count] == 0)
            return false;
        count++;
    } 
    primos[next++] = numero;
    //System.out.println("primos["+next+"] = " + numero);
    return true;
}

public static void main(String ... args) {
    long soma = 0;
    for (int i = 0; i <= 2000000; i++)
        if (isPrimoOptimizade(i)) {
            soma += i;
            //System.out.println(i + ": " + soma);
        }
    System.out.println(soma);
 }[/code]

run:
142913828922
CONSTRUÍDO COM SUCESSO (tempo total: 1 minuto 40 segundos)

[code]public class p10 {
public BitSet bs;
public static void main(String[]args){
p10 s= new p10();
int num=2000000;//num é o valor final
long sum=0;

    s.findprimes(num+1);
    for(int i=2;i<=num-2;i++) if(s.isprime(i)==true)sum+=i;
    
    System.out.println(sum);
}
//pelo método de erastoteles:
public void findprimes(int n){
    bs = new BitSet(n+1);
    int pz=(int)Math.sqrt(n);
    bs.set(0,n,true);
    int x=2;//primo inícial
    while (x<=pz){
        for(int i=x+x;i<=n;i+=x)bs.clear(i);
        x=bs.nextSetBit(x+1);
    }
}


public boolean isprime(int n){
    return bs.get(n);
}

}[/code]

http://www.hinduonnet.com/fline/fl1917/19171290.htm

agora vi o erro!!

troque essa linha

while(primos[count] != 0 && //ou seja não há mais primos a testar primos[count] <= (int)Math.sqrt(numero)) { //com certeza não é divisivel pelos proximos primos...

agora foi em 1s

ai sabe como eu posso herdar todas as declarações de um método para um outro método que estão na mesma classe?

e sim, DavidUser, da pra ser mais eficiente ainda… so precisa testar os números impares… os pares já são primos…

então no lugar de incrementar o teste de 1 em 1… so iniciar do 3, e testar de 2 em 2