본문 바로가기

JAVA/DAY 08 _ 23.08.28

Q. 배열을 활용해서 2~100 정수 중 소수를 구해보자

 

// 셋팅

int[] arr = new int [99];

for(int i = 0 ; i < arr.length ; i++) {
    arr[i] = (i + 2);					// 2~100까지 배열에 넣어놨다
}


// 알고리즘
for(int i = 0 ; i < arr.length ; i++) {			// i = 0, arr[0] -> 2
    if(arr[i] != 0) {							
        System.out.println(arr[i] + "는 소수");

        for(int x = i+1 ; x < arr.length ; x++) {		// x = 1~98
            if(arr[x] != 0 && arr[x] % arr[i] == 0) {	
                arr[x] = 0;
            }
        }

    }
    System.out.println(arr[i]);
}


// 1. arr[x] % arr[i] == 0
// 소수 바로 옆자리가 소수로 나뉘어 떨어지면 0으로 만드는 매커니즘
// 2. arr[x] != 0 &&
// 이거는 2의 배수 (6)이미 0이됐는데, 한번 더 도는건 낭비니까... (없어도 결과는 잘나오긴함)

'JAVA > DAY 08 _ 23.08.28' 카테고리의 다른 글

Sorting Algoritm  (0) 2023.09.10
foreach  (0) 2023.09.10
문자열 비교  (0) 2023.09.04
참조 주소  (0) 2023.09.04
이중배열2  (0) 2023.09.04