P1217 [USACO1.5]回文质数 Prime Palindromes

题目描述

因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。

写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)[a,b] (5 \le a < b \le 100,000,000)[a,b](5a<b100,000,000)( 一亿)间的所有回文质数。

输入输出格式

输入格式:

 

第 1 行: 二个整数 a 和 b .

 

输出格式:

 

输出一个回文质数的列表,一行一个。

 1 #include<iostream>
 2 #include<cmath>
 3 using namespace std;
 4 bool check(int x)
 5 {
 6     int a[20], flag = 1;
 7     while (x > 0)
 8     {
 9         a[flag] = x % 10;
10         x /= 10;
11         flag++;
12     }
13     for (int i = 1; i <= flag / 2; i++)
14         if (a[i] != a[flag - i]) 
15             return 0;
16     return 1;
17 }
18 bool check2(int x)
19 {
20     if (x == 2) return 1;
21     for (int i = 2; i <= sqrt(x); i++)
22         if (x % i == 0) 
23             return 0;
24     return 1;
25 }
26 int main() {
27     long  x, y;
28     cin >> x >> y;
29     if (x == 2)
30         cout << "2" << endl;
31     if (x % 2 == 0) 
32         x++;
33     for (int i = x; i <= y; i = i + 2)
34     {
35         if (check(i) == 0)
36             continue;
37         if (check2(i) == 0)
38             continue;
39         cout << i << endl;
40 
41     }
42     return 0;
43 }

 

posted @ 2019-07-17 03:02  杰尊  阅读(223)  评论(0编辑  收藏  举报