https://www.acmicpc.net/problem/2023
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Q2023 {
static int N;
//2,4,6,8은 짝수로 나누어지고 5는 5로 나누어짐. 따라서 1,3,7,9로 끝나는 숫자만 소수가 될 수 있다.
static int arrEndNumber[] = {1, 3, 7, 9};
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine()); // 1<= N <= 8
//앞 자리도 소수이기때문에 2,3,5,7만 가능하다.
dfs(2, 1);
dfs(3, 1);
dfs(5, 1);
dfs(7, 1);
}
private static void dfs(int number, int numberLength) {
if(numberLength == N && validNumber(number)) {
System.out.println(number);
}
if(numberLength > N) {
return;
}
//1,3,7,9
for(int nIdx = 0 ; nIdx < arrEndNumber.length ; nIdx++) {
int nextNumber = number * 10 + arrEndNumber[nIdx];
if(validNumber(number)) {
dfs(nextNumber, numberLength + 1);
}
}
}
private static boolean validNumber(int validNumber) {
for(int nNum = 2; nNum < validNumber ; nNum++) {
if(validNumber % nNum == 0) {
return false;
}
}
return true;
}
}
| 백준 1202 [보석 도둑] - JAVA (0) | 2022.02.28 |
|---|---|
| 백준 1715 [카드 정렬하기] - JAVA (1) | 2022.02.25 |
| 백준 2839 [설탕 배달] - JAVA (0) | 2022.02.15 |
| 백준 11047 [동전 0] - JAVA (0) | 2022.02.14 |
| 백준 12100 [2048 (Easy)] - JAVA (1) | 2022.01.13 |
댓글 영역