자바 고전 알고리즘 (1) 100 이내 의 소수 구하 기

1750 단어 알고리즘
1. 선별 법 으로 
   이른바 선별 법 이란 작은 것 부터 큰 것 까지 이미 알 고 있 는 소수 의 모든 배 수 를 걸 러 내 는 것 을 말한다. 2 에 따라 우 리 는 '4, 6, 8,..., 100' 등 수 를 걸 러 낸 다음 에 3 에 따라 '9, 15,..., 99' 등 수 를 걸 러 낼 수 있다. 이때 의 6, 12 는 이미 2 의 배수 로 걸 러 졌 다. 4 는 이미 걸 러 졌 기 때문에 다음 선별 수 는 5 이다.
   프로 그래 밍 원리: 크기 가 101 인 배열 을 정의 하고 걸 린 수 대 가 를 1 로 하 며 걸 리 지 않 은 것 을 남 기 며 배열 아래 표 시 는 2 와 같은 수 출력 보다 크 고 출력 하 는 것 은 질 수 입 니 다.
실례:
package rmd_lygp_front.test;

public class Test {
	
	public static void main(String[] args) {
		 int[] a = new int[101];  
	        int i, j = 2;  
	          
	        while (j < 101) {  
	            if (a[j] == 0) {  
	                for (i = j + 1; i < 101; i++) {  
	                    if (i % j == 0) {  
	                        a[i] = 1;  
	                    }  
	                }  
	            }  
	            j++;  
	        }  
	          
	        for (int k = 0; k < 101; k++) {  
	            if (k >= 2 && a[k] == 0) {  
	                System.out.println(k);  
	            }  
	        }  
	}

}

2. 일반적인 방법:
    증명: k = (INT) Math. sqrt (i) 를 사용 하여 순환 의 신뢰성 을 제어 합 니 다. 예 를 들 어 i = 8 시 그의 값 은 2 의 제곱 과 3 의 제곱 사이 에 있 음 을 증명 합 니 다. 그래서 4.
실례:
package rmd_lygp_front.test;

public class Test {
	
	public static void main(String[] args) {
		int i, j, k;  
        for (i = 2; i < 100; i++) {  
            k = (int) Math.sqrt(i);  
            for (j = 2; j <= k; j++) {  
  
                if (i % j == 0)  
                    break;  
  
            }  
            if (j > k) {  
                System.out.println(i + " ");  
            }  
        }  
	}
}

좋은 웹페이지 즐겨찾기