공부

[c++] 백준 문제 2023 신기한 소수 c++

굴러다니다니 2025. 1. 11. 18:43
728x90

https://www.acmicpc.net/problem/2023

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
static int N;

void DFS(int number, int n);

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin >> N;

    DFS(2, 1); //소수와 해당 소수의 자릿수
    DFS(3, 1);
    DFS(5, 1);
    DFS(7, 1);
}
bool isPrime(int number) {
    for (int i = 2; i <= number / 2; i++) {
        if (number % i == 0) {
            return false;
        }
    }
    return true;
}

void DFS(int number, int n) {
    if (n == N) {
        if (isPrime(number)) {
            cout << number << "\n";
        }
        return;
    }
    for (int i = 1; i < 10; i++) {
        if (i % 2 == 0) {
            continue;
        }
        if (isPrime(number * 10 + i)) {
            DFS(number * 10 + i, n + 1);
        }
    }
}
728x90