题目来源:P1217 [USACO1.5]回文质数 Prime Palindromes
因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出范围 [a,b] (5 \le a < b \le 100,000,000)a,b( 一亿)间的所有回文质数。
第 1 行: 二个整数 a 和 b .
输出一个回文质数的列表,一行一个。
回文的判断
void huiwen(int i){ //判断回文的函数
int y=i,num=0;
while(y!=0)
{
num=num*10+y%10;
y/=10;
}
if(num==i) cout << num << endl;
}
质数的判断
int isprime(int x){ //判断质数的函数
if(x<2) return 0;
if(x==2) return 1;
for(int i=2;i*i<=x;i++){
if(x%i==0) return 0;
}
return 1;
}
主函数
#include<iostream>
using namespace std;
int main()
{
int a,b;
cin >> a >> b;
for(int i=a;i<b;i++)
{
if(isprime(i))
{
huiwen(i);
}
}
return 0;
}
运行结果
5 500
5
7
11
101
131
151
181
191
313
353
373
383