天天看點

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