
/**//*
ID: lorelei3
TASK: pprime
LANG: C++
*/

#include <fstream>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <math.h>

using namespace std;

const int BASE = 10;
const int MAX = 100000;

int ans[MAX];


int isPrime(int a)
{
int n = static_cast<int>(sqrt(a));
for(int i=2; i<=n; ++i)
if(!(a%i))
return 0;
return 1;
}



int getPal(int i, int j)
{

/**//*
if (j==1)
{
char a[30];
sprintf(a,"%d",i);
int len=strlen(a);
for(int k=0;k<len;k++)
a[k+len]=a[len-k-1];
a[len*2]='\0';
char* b;
return atoi(a);
//return strtol(a,&b,10);
}
if (j==0)
{
char a[30];
sprintf(a,"%d",i);
int len=strlen(a);
for(int k=0;k<len;k++)
a[k+len-1]=a[len-k-1];
a[len*2-1]='\0';
char* b;
return atoi(a);
//return strtol(a,&b,10);
}
*/

if(j==1)
{
char a[30];
sprintf(a,"%d",i);
int len=strlen(a);
for(int k=0;k<len;k++)
a[k+len]=a[len-k-1];
a[len*2]='\0';
char* b;
return atoi(a);
//return strtol(a,&b,10);

/**//*
char a[30];
sprintf(a, "%d", i);
int len = strlen(a);
for(int k=0; k<len; k++)
a[k+len] = a[len-k-1];
a[len*2] = '\0';
return atoi(a);
*/
//char str[20];
// sprintf(str, "%d", i);
// string s(str), t(str);
//reverse(t.begin(), t.end());
//s.append(t);
//return atoi(s.c_str());
}

if(j==0)
{

/**//*
char a[30];
sprintf(a,"%d",i);
int len=strlen(a);
for(int k=0;k<len;k++)
a[k+len-1]=a[len-k-1];
a[len*2-1]='\0';
char* b;
return atoi(a);
//return strtol(a,&b,10);
*/
char a[30];
sprintf(a, "%d", i);
int len = strlen(a);
for(int k=0; k<len; k++)
a[k+len-1] = a[len-k-1];
a[len*2-1] = '\0';
return atoi(a);
//char str[20];
//sprintf(str, "%d", i);
//string s(str), t(str);
//t = t.substr(0, t.size()-1);
//reverse(t.begin(), t.end());
//s.append(t);
//return atoi(s.c_str());
}
}



int main()
{
int i,j,a,b;
ifstream in("pprime.in");
ofstream out("pprime.out");

in>>a>>b;

int t=0;
for(i=1; i<=9999; ++i)

for(j=0; j<2; ++j)
{
int x = getPal(i,j);

if(isPrime(x) && x>=a && x<=b)
{
ans[t++] = x;
}
}

sort(ans, ans+t);

for(i=0; i<t; ++i)
out<<ans[i]<<endl;

return 0;
}
posted on 2010-11-09 12:58
小阮 阅读(172)
评论(0) 编辑 收藏 引用 所属分类:
USACO