题目描述
因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)( 一亿)间的所有回文质数。
输入格式
第 1 行: 二个整数 a 和 b .
输出格式
输出一个回文质数的列表,一行一个。
分析:
先判断回文,偶数位的回文除了11都不是质数,如果b大于9999999,只要判断到9999999就可以。如果是回文数在判断素数,能被2和3整除的都不是素数,同时满足即是回文又是素数的输出。
#include<bits/stdc++.h>
using namespace std;
int huiwen(int n) {//判断回文
int m = n;
int i = 0;
if (n > 11 && n < 99) {//如果是偶数位则直接返回0
return 0;
}
if (n > 1000 && n < 9999) {
return 0;
}
if (n > 100000&& n < 999999) {
return 0;
}
if (n > 10000000 && n < 999999) {
return 0;
}
if (n > 11 && n < 99) {
return 0;
}
if (n > 1111 && n < 9999) {
return 0;
}
while (m > 0) {
i = i * 10 + m % 10;
m = m / 10;
}
if (i