본문 바로가기
CordingTest

[백준] 1978번 : 소수 찾기

by 김도유 2022. 11. 15.

문제

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

입력

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

출력

주어진 수들 중 소수의 개수를 출력한다.

문제풀이

import java.io.IOException;
import java.util.Scanner;

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

		Scanner sc = new Scanner(System.in);

		int num = sc.nextInt();
		int sosuCnt = 0, cnt = 0;

		for (int i = 1; i <= num; i++) {
			int num2 = sc.nextInt();
			sosuCnt = 0;

			for (int j = 1; j <= num2; j++) {
				if (num2 % j == 0)
					sosuCnt++;
			}

			if (sosuCnt == 2)
				cnt++;
		}
		System.out.print(cnt);
	}
}

1. 입력 받을 숫자의 개수(num)를 입력 받고, 그 숫자의 개수만큼 for문을 돌려서 소수인지 검증하고 싶은 숫자(num2)를 차례로 입력 받는다.

 

2. if 안에서 입력받은 숫자(num2)의 개수 만큼 j를 증가시키며 나누어준다.

 

3. 조건이 맞으면 sosuCnt 값을 증가시켜주는데, 만약 1로 나누어 지거나 자기 자신으로 밖에 나누어 지는 수라면

소수 조건을 충족한다.

 

4. sosuCnt가 2인 것들을 cnt에 누적시켜주고 마지막으로 출력한다.

'CordingTest' 카테고리의 다른 글

[백준] 2908번 : 상수  (0) 2022.11.14
[백준] 1024번 : 수열의 합  (0) 2022.11.12
[백준] 2587번 : 대표값2  (0) 2022.11.11
[백준] 2750번 : 수 정렬하기  (0) 2022.11.10
[백준] 2738번 : 행렬 덧셈  (0) 2022.11.05

댓글