随笔-141  评论-9  文章-3  trackbacks-0

/*
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%== 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

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理