for(int i=2;count<MAX_PRIMES;i++)
{
if(finished){
break;
}

boolean prime=true;
for(int j=0;j<count;j++){
if(i%primes[j]==0){
prime=false;
break;
}
}

if(prime){
primes[count++]=i;
System.out.println("Found prime: "+i);
}
}
}这段程序我不名字它在讲什么!~!~请帮我解释一下

解决方案 »

  1.   

    你只要明白什么是质数,那if(i%primes[j]==0)这段意思就清楚了从2到1000000逐个检查,如果是质数,存入primes数组。循环约10s后线程停止
      

  2.   

    还是有点不明白
    if(finished){
    break;
    }

    if(i%primes[j]==0){
    prime=false;
    break;
    }
    是什么意思???
      

  3.   

    sleep结束后,calculator.finished=true;
    线程中if(finished)结束循环后面一段是,质数的倍数显然不是质数