Hard deck/리포트

024 : 신기한 소수 찾기

서버관리자 페페 2022. 7. 1. 19:43
import java.util.Scanner;

public class Main {

    static int N;

    public static void main(String[] args) {

        // ISC
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();

        // Operating DFS + Checker + OEC
        DFS(2, 1);
        DFS(3, 1);
        DFS(5, 1);
        DFS(7, 1);
    }

    // EM : DFS
    static void DFS(int number, int digit) {

        // Quick Recovery PipeLine
        if (digit == N) {
            if (isPrime(number)) {
                System.out.println(number);
            }
            return;
        }

        for (int i = 1; i < 10; i++) {
            if (i % 2 == 0) {
                continue;
            }
            if (isPrime(number * 10 + i)) {
                DFS(number * 10 + i, digit++);
            }
        }
    }

    // EM : Prime checker
    static boolean isPrime(int num) {
        for (int i = 2; i <= num / 2; i++) {
            if (num % i == 0)
                return false;
        }
        return true;
    }
}