코테문제

[백준] B1978

dekoms 2024. 1. 25. 03:32

Q. https://www.acmicpc.net/problem/1978

 

1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

 

# 아이디어

1000이하의 자연수이기 때문에 1~1000 사이의 자연수에 대해서만 생각하면 된다.

소수는 1과 자신으로만 나누어 떨어지는 숫자이기 때문에, 2부터 시작해서 1000까지 나누어 떨어지는지 확인하면 된다.

 

Sol2. 처음엔 배열에다가 숫자를 입력받았는데 그냥 입력 받을 때 소수를 판별할 수 있어서 for문을 하나로 합쳤다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int cnt = 0;
        for (int i = 0; i < N; i++) {
            int num = sc.nextInt();
            if (num == 1) continue;

            int div;
            for (div = 2; div <= 1000 && div < num; div++) {
                if (num % div == 0) {
                    break;
                }
            }
            if (div == num) {
                cnt++;
            }
        }

        System.out.println(cnt);

        sc.close();

    }
}

 

 

💯💯💯

종료 조건과 cnt 증가하는 조건을 잘 확인하자!!!