您的位置:首页 > 其它

1.5.2 Prime Palindromes

2010-08-19 10:53 295 查看
/*
ID: zhangzz4
PROG: pprime
LANG: C++
*/
#include<stdio.h>
#include<stdlib.h>
int a,b;
int ok(int x)
{
if(x<a||x>b) return 0;
if(x<2) return 0;
for(int i=2;i*i<=x;i++)
if(x%i==0) return 0;
return 1;
}
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int f[1000000],cnt;
int main()
{
freopen("pprime.in","r",stdin);
freopen("pprime.out","w",stdout);
scanf("%d%d",&a,&b);
int num=0;
for(int d1=0;d1<=9;d1++)
{
num=d1;
if(ok(num)) f[cnt++]=num;
num=d1*10+d1;
if(num>9&&ok(num)) f[cnt++]=num;
for(int d2=0;d2<=9;d2++)
{
num=d1*100+d2*10+d1;
if(num>99&&ok(num)) f[cnt++]=num;
num=d1*1000+d2*100+d2*10+d1;
if(num>999&&ok(num)) f[cnt++]=num;
for(int d3=0;d3<=9;d3++)
{
num=d1*10000+d2*1000+d3*100+d2*10+d1;
if(num>9999&&ok(num)) f[cnt++]=num;
num=d1*100000+d2*10000+d3*1000+d3*100+d2*10+d1;
if(num>99999&&ok(num)) f[cnt++]=num;
for(int d4=0;d4<=9;d4++)
{
num=d1*1000000+d2*100000+d3*10000+d4*1000+d3*100+d2*10+d1;
if(num>999999&&ok(num)) f[cnt++]=num;
num=d1*10000000+d2*1000000+d3*100000+d4*10000+d4*1000+d3*100+d2*10+d1;
if(num>9999999&&ok(num)) f[cnt++]=num;
for(int d5=0;d5<=9;d5++)
{
num=d1*100000000+d2*10000000+d3*1000000+d5*100000+d4*10000+d4*1000+d3*100+d2*10+d1;
if(num>99999999&&ok(num)) f[cnt++]=num;
}
}
}
}
}
qsort(f,cnt,sizeof(f[0]),cmp);
for(int i=0;i<cnt;i++)
printf("%d/n",f[i]);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c