エラトステネスのふるい


エラトステネスのふるい

  • において、ラトステンニスの体は素数を求めるアルゴリズムであり、符号化試験において有用である.
  • に道を教える

  • 2から、素数を要求したい区間の全数をリストする.
  • 2は小数で、右に2を書いて、残りの数の中の2の倍数をすべて削除します.
  • 3は少数で、右に3と書いて、残りの数の中で3の倍数を抜きます.(緑)
  • 5は少数で、右に5と書いて、残りの数の中の5の倍数をすべて削除します.(青)
  • ビット目のプロセスを繰り返し、求めた区間のすべての少数の残りを返します.

  • エラトステネスのふるい。java

    package $00_;
    
    public class $01_에라토스테네스의_체_소수구하기 {
    
    	public static final int max = 10000;
    	
    	public static void main(String[] args) {
    		
    		long start = System.currentTimeMillis();
    
    		boolean[] prime = new boolean[max + 1];
    		prime[0] = true;
    		prime[1] = true;
    		
    		for(int i = 2 ; i * i <= max ; i++) {
    			if(!prime[i]) {
    				for(int j = i * i ; j <= max ; j += i) {
    					prime[j] = true;
    				}
    			}
    		}
    		
    		for(int i = 0 ; i <= max ; i++) {
    			if(!prime[i]) {
    				System.out.println(i);	// 소수인 수 출력
    			}
    		}
    		
    		long end = System.currentTimeMillis();
    		System.out.println("수행시간: " + (end - start) + " ms");
            // 10,000 기준 13ms
    	}
    }