题目描述
因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出范围 [a,b] (5≤a<b≤100,000,000)( 一亿)间的所有回文质数。
输入格式
第 1 行: 二个整数 a 和 b .
输出格式
输出一个回文质数的列表,一行一个。
输入输出样例
输入 #1
5 500
输出 #1
5
7
11
101
131
151
181
191
313
353
373
383
#include<iostream>
using namespace std;
int main()
{
int i,j,s=0,a,b,t;
cin>>a>>b;
for(i=a;i<=b;i++) //a到b中找数
{
t=i; //防止i的值改变,在下一次循环时也可以重新赋值t
while(t!=0) //将i的值倒序
{
s=s*10+t%10;
t=t/10;
}
if(i==s) //判定是不是回文数
{
for(j=2;j*j<=i;j++) //判定是不是质数
{
if(i%j==0)
{
break;
}
}
if(j*j>i) //如果j经历了完整的循环那么它就是质数
{
cout<<i<<endl;
}
}
s=0; //s回归初始值
}
return 0;
}