for (int i = 2; i < 1000; i++) {
int count = 0;
for (int j = 2; j < i; j++) {
if(i%j==0){
count++;
break;//一旦有整除的数出现,那么里层循环立马结束,跳出循环,continue;是跳出本次循环
}
System.out.println("i="+i+";j="+j);
}
if(count==0){
System.out.println("素数有:"+i);
}
}
long endtime = System.currentTimeMillis();
System.out.println(endtime-stattime);//用时854毫秒
简单优化下:
long stattime = System.currentTimeMillis();
for (int i = 2; i < 1000; i++) {
int count = 0;
for (int j = 2; j < Math.sqrt(i); j++) {//取平方值
if(i%j==0){
count++;
break;//一旦有整除的数出现,那么里层循环立马结束,跳出循环,continue;是跳出本次循环
}
System.out.println("i="+i+";j="+j);
}
if(count==0){
System.out.println("素数有:"+i);
}
}
long endtime = System.currentTimeMillis();
System.out.println(endtime-stattime);//用时54毫秒
效率相差10倍之多,可见好的算法何其重要。当然我这个不叫什么算法,但意思是想通。