萌新不解
#include<stdio.h>
#include<math.h>
int prime(long long n)//质数判断函数
{
int i,flag=1;
if(n<2)
flag=0;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
{
flag=0;
break;
}
return flag;
}
int huiwen(long long x,long long y)
{
long long palindrome;
int d1,d2,d3,d4;
for (d1 = 5; d1 <= 9; d1+=2) //长度为1
{
palindrome = d1;
if(prime(palindrome)==1&&palindrome>=x&&palindrome<=y)
printf("%lld\n",palindrome);
}
for (d1 = 1; d1 <= 9; d1+=2) //长度为2
{
palindrome = 10*d1 +d1;
if(prime(palindrome)==1&&palindrome>=x&&palindrome<=y)
printf("%lld\n",palindrome);
}
for (d1 = 1; d1 <= 9; d1+=2) //长度为3
{
for (d2 = 0; d2 <= 9; d2++)
{
palindrome = 100*d1 + 10*d2 +d1;
if(prime(palindrome)==1&&palindrome>=x&&palindrome<=y)
printf("%lld\n",palindrome);
}
}
for (d1 = 1; d1 <= 9; d1+=2) //长度为4
{
for (d2 = 0; d2 <= 9; d2++)
{
palindrome = 1000*d1 + 100*d2+ 10*d2+ d1;
if(prime(palindrome)==1&&palindrome>=x&&palindrome<=y)
printf("%lld\n",palindrome);
}
}
for (d1 = 1; d1 <= 9; d1+=2) //长度为5
{
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
palindrome = 10000*d1 + 1000*d2 +100*d3 + 10*d2 + d1;
if(prime(palindrome)==1&&palindrome>=x&&palindrome<=y)
printf("%lld\n",palindrome);
}
}
}
for (d1 = 1; d1 <= 9; d1+=2) //长度为6
{
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
palindrome = 100000*d1 + 10000*d2 +1000*d3+100*d3 + 10*d2 + d1;
if(prime(palindrome)==1&&palindrome>=x&&palindrome<=y)
printf("%lld\n",palindrome);
}
}
}
for (d1 = 1; d1 <= 9; d1+=2) //长度为7
{
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
for (d4 = 0; d4 <= 9; d4++)
{
palindrome = 1000000*d1 + 100000*d2 +10000*d3 +1000*d4 +100*d3 + 10*d2 + d1;
if(prime(palindrome)==1&&palindrome>=x&&palindrome<=y)
printf("%lld\n",palindrome);
}
}
}
}
}
int main()
{
long long a,b;
scanf("%d %d",&a,&b);
huiwen(a,b);
return 0;
}