/**//*
ID: lorelei3
TASK: sprime
LANG: C++
*/
#include <fstream>
#include <math.h>
using namespace std;
int N;
int isPrime(int a){
if(a==2)
return 0;
for(int i=2; i<=sqrt(a); ++i)
if( a%i == 0)
return 0;
return 1;
}
void sprime(int n, int depth){
if(depth == N){
//cout<<n<<endl;
printf("%d\n", n);
return;
}
n *= 10;
if(isPrime(n+1))
sprime(n+1, depth+1);
if(isPrime(n+3))
sprime(n+3, depth+1);
if(isPrime(n+7))
sprime(n+7, depth+1);
if(isPrime(n+9))
sprime(n+9, depth+1);
}
int main(){
freopen("sprime.in","r",stdin);
freopen("sprime.out","w",stdout);
scanf("%d\n", &N);
//cin>>N;
sprime(2,1);
sprime(3,1);
sprime(5,1);
sprime(7,1);
return 0;
}
posted on 2010-11-09 12:59
小阮 阅读(166)
评论(0) 编辑 收藏 引用 所属分类:
USACO