天天看点

求100以内素数(使用标签的流程控制)(in Java)

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();
		}
	}
}