반응형
백준 1929 소수 구하기 문제입니다.
https://www.acmicpc.net/problem/1929
다음과 같이 시간초과가 뜨더군요 그래서 저는 자바에서 제공되는 Math 클래스의 sqrt인 제곱근을 활용하였습니다.
소수를 구하는 prime(int n) 메서드입니다.
저번에 블로그에 올렸던 코드와 유사하지만 Math.sqrt(n)으로 반복문의 반복을 줄였습니다.
static boolean prime(int n) {
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0)
return false;
}
return true;
}
전체 코드입니다.
Scanner가 아닌 버퍼드리더를 사용하여 시간을 줄였습니다.
import java.io.*;
import java.math.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] s = br.readLine().split(" ");
int a = Integer.parseInt(s[0]);
int b = Integer.parseInt(s[1]);
for (int i = a; i <= b; i++) {
if (i == 1)
continue;
if (prime(i)) {
bw.write(i + "\n");
}
}
bw.flush();
bw.close();
}
static boolean prime(int n) {
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0)
return false;
}
return true;
}
}
반응형
'🔑알고리즘 > baekjoon' 카테고리의 다른 글
백준 10845 : 큐 - 자바(java) 문제 풀이 (0) | 2022.05.10 |
---|---|
백준 4948 : 베르트랑 공준 - 자바 문제 해결 코드 (0) | 2022.01.25 |
백준 11653 : 소인수분해 - 자바 문제 해결 코드 (0) | 2022.01.24 |
백준 2581 : 소수 - JAVA(자바) 해결 코드 (0) | 2022.01.23 |
백준 9012 : 괄호 자바 문제 풀이 (Stack 사용 문제) (0) | 2022.01.02 |