
/**//*
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
小阮 阅读(172)
评论(0) 编辑 收藏 引用 所属分类:
USACO