1357. 优质牛肋骨

Posted caifxh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1357. 优质牛肋骨相关的知识,希望对你有一定的参考价值。

数字本身为质数,且其所有前缀数字均为质数。

思路

  1. 枚举每一位
  2. 首位只能从\\(\\{2,3,5,7\\}\\)选取
  3. 其余位只能从\\(\\{1,3,5,7\\}\\)中选取
int n;

bool isprime(int x)
{
    if(x < 2) return false;
    for(int i=2;i*i<=x;i++)
        if(x % i == 0) 
            return false;
    return true;
}

void dfs(int u,int x)
{
    if(u == n)
    {
        cout<<x<<endl;
        return;
    }

    for(int i=1;i<=9;i+=2)
    {
        int t=x*10+i;
        if(isprime(t))
            dfs(u+1,t);
    }
}

int main()
{
    cin>>n;

    int a[]={2,3,5,7};
    for(int i=0;i<4;i++)
        dfs(1,a[i]);
    //system("pause");
    return 0;
}

以上是关于1357. 优质牛肋骨的主要内容,如果未能解决你的问题,请参考以下文章

2080 特殊的质数肋骨 USACO (深度优先搜索)

2319__1.5.3 Superprime Rib 特殊的质数肋骨

P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib

洛谷 P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib

DFS例题

P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib (数论—素数 + DFS)