문제

 

해결방법


소수 : 1보다 큰 자연수 중 1과 자기 자신만을 약수로 갖는 자연수

이점에서 착안해서 2에서 N - 1로 하는 수를 나머지 연산했을 때 0으로 나눠 떨어지는 경우는 1과 자기 자신이외의 수를 약수로 갖는 것이기 때문에 이 경우에는 소수가 아니다라는 점을 착안해서 문제를 해결하였다.

 

작성코드


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int primeCnt = 0;

        for (int i = 0; i < N; i++) {
            boolean isPrime = true;
            int num = scanner.nextInt();
	// 예외처리 1인 경우
            if (num == 1) {
                continue;
            }
			
            for (int j = 2; j <= Math.sqrt(num); j++) {
                if (num % j == 0) { // 소수가 아닌 경우
                    isPrime = false;
                    break;
                }
            }
		// 소수인 경우
            if (isPrime) {
                primeCnt++;
            }
        }
        System.out.println(primeCnt);
    }
}

'자료구조&알고리즘' 카테고리의 다른 글

[백준]10826번 : 피보나치 수4  (0) 2022.07.17
[자료구조] HashSet(집합)  (0) 2022.07.16

+ Recent posts