深搜
2025-01-14 09:48:08
发布于:江苏
6阅读
0回复
0点赞
#include <bits/stdc++.h>
#define debug freopen("in.txt","r",stdin),freopen("out.txt","w",stdout)
using namespace std;
bool is_prime (int x) // 判断是否是素数
{
    if (x <= 1)
        return false;
    if (x == 2 || x == 3)
        return true;
    if (x % 6 != 1 && x % 6 != 5)
        return false;
    for (int i = 5; i * i <= x; i += 6)
        if (x % i == 0 || x % (i + 2) == 0)
            return false;
    return true;
}
int n;
void dfs (int x, int sum)
{
    if (x == n + 1)
    {
        printf ("%d\n", sum);
        return;
    }
    for (int i = 1; i <= 9; i++)
    {
        if (is_prime (sum * 10 + i))
            dfs (x + 1, sum * 10 + i);
    }
}
int main ()
{
    scanf ("%d", &n);
    dfs (1, 0);// 从1位数开始搜索
    return 0;
}
这里空空如也



有帮助,赞一个