1:求100以内的全部素数(质数)
<span style="font-size:18px;">public class TestContinueOuter {
public static void main(String[] args) {
int n=0;
outer: for(int i=2;i<100;i++ ){
for(int j=2;j<i;j++){
if(i%j==0)
continue outer;
}
System.out.print(i+"\t");
n++;
if(n%5==0)
System.out.println();
}
}
}</span>
2:由于素数都是基数(否则可被自身的一半整除),故可将第一个for循环设为for(int i=2;i<100;i+=2)
<pre name="code" class="java"><span style="font-size:18px;">public class TestContinueOuter {
public static void main(String[] args) {
int n=1;
System.out.print(2+"\t");
outer: for(int i=3;i<100;i+=2){
for(int j=2;j<i;j++){
if(i%j==0)
continue outer;
}
System.out.print(i+"\t");
n++;
if(n%5==0)
System.out.println();
}
}
}</span>
3: 事实上,第二个循环试除的数只要试到sqrt(j)即可:
public class TestContinueOuter {
public static void main(String[] args) {
int n=1;
System.out.print(2+"\t");
outer: for(int i=3;i<100;i+=2){
for(int j=2;j<=Math.sqrt(i);j++){
if(i%j==0)
continue outer;
}
System.out.print(i+"\t");
n++;
if(n%5==0)
System.out.println();
}
}
}