USACO-section1.5 Superprime Rib[深搜]

来源:互联网 发布:java分布式开发技术 编辑:程序博客网 时间:2024/05/21 08:05

题意:
给定n位数,第一位,12位,123位······全是素数
如7333,7,73,733,7333都是素数

题解:
深搜:类似于从左往右拼接的想法,当左边是素数后再拼一位数,判断是否进入下一步

/*ID:jsntrdy1PROG:sprime LANG: C++*/#include<cstdio>#include<iostream>#include<cstring>#include<fstream>#include<cmath>using namespace std;ifstream fin("sprime.in");ofstream fout("sprime.out");int n;int isOK(int p){    if(p==1||p==0)      return 0;    for(int i=2;i<=sqrt(p);i++)    {        if(p%i==0)          return 0;//非素数    }    return 1;//是素数 }void dfs(int t,int step){      if(step==n)   {     fout<<t<<endl;     return;   }   for(int i=1;i<=9;i++)          if(isOK(t*10+i))        dfs(t*10+i,step+1);     }int main(){    fin>>n;    dfs(0,0);    fin.close();    fout.close();    return 0;}
原创粉丝点击