[JAVA][BOJ][S5] 1978. 소수 찾기
728x90

 

1978번: 소수 찾기

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

www.acmicpc.net

문제

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

입력

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

출력

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

풀이

for문을 이용해 해당 숫자가 그 수의 제곱이 되기 전까지(제곱은 무조건 소수가 아니므로) 차례대로 나누면 된다

코드

package 문제풀이;

import java.io.*;
import java.util.*;

public class S5_1978_소수찾기 {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int N = Integer.parseInt(br.readLine());
		
		int ans = 0;
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		outer: for (int i = 0; i < N; i++) {
			int num = Integer.parseInt(st.nextToken());
			
			if(num == 1) continue outer;
			else {
				for (int j = 2; j <= Math.sqrt(num); j++) {
					if(num % j == 0) continue outer;
				}
			}
			
			ans++;
		}
		
		System.out.println(ans);

	}

}

결과

 

#자바 #java #boj #백준 #알고리즘

728x90

'알고리즘 > BOJ' 카테고리의 다른 글

[JAVA][BOJ][S2] 13565. 침투  (0) 2022.07.24
[JAVA][BOJ][S1] 1926. 그림  (0) 2022.07.23
[JAVA][BOJ][S3] 1431. 시리얼 번호  (0) 2022.07.21
[JAVA][BOJ][S2] 2644. 촌수계산  (0) 2022.07.20
[JAVA][BOJ][S4] 17219. 비밀번호 찾기  (0) 2022.07.19