JAVA/DAY 08 _ 23.08.28

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

민지짱민지최고 2023. 9. 10. 11:41

 

// 셋팅

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이됐는데, 한번 더 도는건 낭비니까... (없어도 결과는 잘나오긴함)