728x90
반응형
https://www.acmicpc.net/problem/2023
메모리가 4MB로 작아서 에라토스테네스의 체는 사용이 불가능하다.
그리고 앞자리부터 더해가면서 소수인지 판별해가는 아이디어가 중요했다.
import java.util.*;
public class Main {
static StringBuilder sb = new StringBuilder();
public static void recursion(int n,int count){
if(count == 0){
sb.append(n+"\n");
return;
}else{
for (int i = 1; i <= 9; i++) {
int temp = n*10+i;
if (isPrime(temp)) {
recursion(temp,count-1);
}
}
}
}
public static boolean isPrime(int n){
if(n==1) return false;
for (int i=2; i<=Math.sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
recursion(0,n);
System.out.println(sb);
}
}
728x90
'코딩테스트' 카테고리의 다른 글
[백준 2864] 5와 6의 차이 자바 문자열 (0) | 2023.06.15 |
---|---|
[백준 2935] 소음 자바 문자열 (0) | 2023.06.15 |
[프로그래머스] 최소직사각형 - 완전탐색, 자바 (1) | 2023.02.18 |
[구현] 백준 2875번 대회 or 인턴 (java) (0) | 2021.02.04 |
[String] 백준 10808번 알파벳 개수 (java) (0) | 2021.01.31 |