【USACO 1.5】SuperPrime Rib

/*
TASK: sprime
LANG: C++
SOLVE: dfs,后面每增加一位,判断当前是否为素数。
第一位不能为0
 */
#include<cstdio>
int n;
void dfs(int x,int d){
    for(int i=2;i<=x/i;i++)
        if(x%i==0)return;
    if(x==1)return;
    if(d==n){
        printf("%d\n",x);
        return;
    }
    for(int i=(d==0);i<10;i++)
        dfs(x*10+i,d+1);
}
int main(){
    freopen("sprime.in","r",stdin);
    freopen("sprime.out","w",stdout);
    scanf("%d",&n);
    dfs(0,0);
}

 

posted @ 2016-09-29 10:44  水郁  阅读(287)  评论(0编辑  收藏  举报
……