동그란 도그린
BOJ 1978 - 소수 찾기 본문
입력
- 첫 줄에 입력 받을 수의 개수 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