#include<iostream>(从主函数开始运行)
using namespace std;
int prime(int a)//设函数prime,参数为整形变量a。
{
int i;//设局部整形变量i。
if(a==2)//当a等于2时(因下方判断时2被排除,所以得先挑出来)
{
return 1;//结束函数并返回1(1指是质数)
}
for(i=2;i<=a/2+1;i++)//循环,用于判断质数。
{
if(a%i==0)//当a有2以上的因数时。
{
return 0;//结束函数并返回0(0指不是质数)
}
}
return 1;//否则结束并返回1。
}
int back(int a)//设函数back,参数为整形a。(因两个函数互不相干,其变量也不相干。)
{
int b[10],i,j;//设局部整形数组变量b个。
i=0;//i的初始值为0(i为a的位数)
while(a>0)//循环用于将a的每一位存入数组中。
{
i++;//i加1(只要能运行就说明至少还有1位未存入数组,这时,将a的数位加1。)
b[i]=a%10;//将未处理数位的末位存入数组。
a=a/10;//将a的末位去除。
}
for(j=1;j<i;j++)//循环用于判断a是否回文。
{
if(b[j]!=b[i+1-j])//当a的第j与倒数第j位不相同(不是回文数)
{
return 0;//结束函数并返回0(0指不是回文数)
}
}
return 1;//否则结束并返回1。
}
int main()//主函数的起始。
{
int i;//设局部变量i。
for(i=2;i<=1000;i++)//循环用于判断输出回文质数
{
if(prime(i)==1)//当a是质数时。
{
if(back(i)==1)//且还是回文数时。
{
cout<<i<<" ";//输出此数。
}
}
}
return 0;//结束主函数的运行。
}