728x90
반응형
2024.09.28기준 - 실버5
728x90
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 연속된 소수를 이용해 입력받은 수 보다 크면서 제일 작은 수를 출력하는 문제입니다.
접근 방법
- 무조건 연속되는 소수이기 때문에 2부터 소수를 구해 입력받은 수 보다 커지면 바로 멈춰주고 출력해줍니다.
1. 필요한 메소드들을 생성해 주었습니다.
- 연속된 두 소수를 곱해서 입력받은 수 보다 큰 수를 찾아주는 메소드를 생성합니다.
/**
* 연속된 두 소수를 곱해서 입력받은 수 보다 큰 수를 찾아주는 메소드
* @param num
* @return 입력받은 수 보다 큰 수
*/
private static int solution(int num) {
int be = 2;
for (int i = 3; ; i++) {
if (check(i)) {
if (be * i > num) {
return be * i;
} else {
be = i;
}
}
}
}
- 참조하는 수가 소수인지 판별하는 메소드를 생성합니다.
/**
* 소수인지 판별하는 메소드
* @param num
* @return true면 소수, false면 소수가 아님
*/
private static boolean check(int num) {
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
2. 리턴된 수를 출력해줍니다.
코드
package Main;
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));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int num = solution(n);
bw.write(Integer.toString(num));
bw.flush();
bw.close();
br.close();
}
/**
* 연속된 두 소수를 곱해서 입력받은 수 보다 큰 수를 찾아주는 메소드
* @param num
* @return 입력받은 수 보다 큰 수
*/
private static int solution(int num) {
int be = 2;
for (int i = 3; ; i++) {
if (check(i)) {
if (be * i > num) {
return be * i;
} else {
be = i;
}
}
}
}
/**
* 소수인지 판별하는 메소드
* @param num
* @return true면 소수, false면 소수가 아님
*/
private static boolean check(int num) {
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BEAKJOON / 백준 - JAVA 29732번 Rick-Roll Virus (0) | 2024.10.02 |
---|---|
BEAKJOON / 백준 - JAVA 6246번 풍선 놀이 (0) | 2024.09.29 |
BEAKJOON / 백준 - JAVA 15727번 조별과제를 하려는데 조장이 사라졌다 (0) | 2024.09.25 |
BEAKJOON / 백준 - JAVA 4848번 집합 숫자 표기법 (0) | 2024.09.24 |
BEAKJOON / 백준 - JAVA 25166번 배고픈 아리의 샌드위치 구매하기 (0) | 2024.09.23 |