안녕하세요. 이번에는 백준 1978 소수 찾기 문제를 풀어보려고 합니다.
https://www.acmicpc.net/problem/1978
Problem
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
Solution
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int count = 0;
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for(int i = 0; i < N; i++) {
int num = Integer.parseInt(st.nextToken());
if(isPrime(num)) {
count++;
}
}
System.out.println(count);
}
public static boolean isPrime(int num) {
if(num < 2) {
return false;
}
for(int i = 2; i * i <= num; i++) {
if(num % i == 0) {
return false;
}
}
return true;
}
}
이번 문제는 소수 찾기 문제이다 소수 문제는 에라토스테너스의 체를 사용하는 것이 가장 좋다.
isPrime이 에라토스테너스의 체이다
public static boolean isPrime(int num) {
if(num < 2) {
return false;
}
for(int i = 2; i * i <= num; i++) {
if(num % i == 0) {
return false;
}
}
return true;
}
나중에 에라토스테너스의 체도 포스팅 해봐야겠다.
Performance
반응형
'백준 Algorithm > 백준 CLASS2' 카테고리의 다른 글
[백준] CLASS2 2609 최대공약수와 최소공배수 - JAVA [자바] (0) | 2023.10.04 |
---|---|
[백준] CLASS2 2164 카드2 - JAVA [자바] (2) | 2023.10.03 |
[백준] CLASS2 1920번 : 수 찾기 - JAVA [자바] (0) | 2023.10.01 |
[백준] CLASS2 1546번 : 평균 - JAVA [자바] (0) | 2023.09.30 |
[백준] CLASS2 1259번 : 펠린드롬수 - JAVA [자바] (0) | 2023.09.29 |