问题描述
求出所有不超过1000的回文质数。所谓回文质数指的是,对一个整数a从左向右和从右向左读其数值都相同且a为质数,则称整数为回文质数。
解题思路
1.将判断质数的程序写入函数prime(质数)
2.将判断回文数的程序写入函数back(回)
3.将输入输出的主程序写好,输出。
程序代码
#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的每一位存入数组中。
{