Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

동그란 도그린

BOJ 1978 - 소수 찾기 본문

알고리즘/문제 풀이

BOJ 1978 - 소수 찾기

도그rin 2023. 1. 14. 17:50

입력

  • 첫 줄에 입력 받을 수의 개수 N 입력
  • 둘째 줄에 N개의 수 입력 (1,000 이하의 자연수)

출력

  • 입력 받은 수들 중 소수의 개수 출력

풀이 방법

  • 입력 받은 수들의 약수의 개수를 세고, 만약 약수의 개수가 2이면(1과 자기 자신) 소수의 개수를 1만큼 증가

코드

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

public class BOJ_1978 {
	public static void main(String[] args) throws IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		int N=Integer.parseInt(br.readLine());	// 입력 받은 수의 개수
		int ans=0;	// 소수의 개수
		
		StringTokenizer st=new StringTokenizer(br.readLine());
		for(int i=0;i<N;i++) {
			int num=Integer.parseInt(st.nextToken());	// 입력 받은 수
			
			int cnt=0;	// 입력 받은 수의 약수 개수
			for(int j=1;j<=num/2;j++) {
				if(num%j==0) {		// num이 j로 나누어지면 j는 num의 약수
					if(j==num/j)	// 약수가 중복되어 세어지지 않도록 if문 이용
						cnt++;
					else
						cnt+=2;
				}
			}
			
			if(cnt==2) {	// 약수의 개수가 2인 경우(1과 자기자신)
				ans++;		// 소수 개수 1만큼 증가
			}
		}
		
		System.out.println(ans);	// 소수의 개수 출력
	}
}

 

'알고리즘 > 문제 풀이' 카테고리의 다른 글

BOJ 2309 - 일곱 난쟁이  (0) 2023.01.18
BOJ 1476 - 날짜 계산  (0) 2023.01.15
BOJ 1037 - 약수  (0) 2023.01.14
BOJ 2609 - 최대공약수와 최소공배수  (0) 2023.01.12
BOJ 4892 - 숫자 맞추기 게임  (0) 2023.01.09
Comments