You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.0 KiB
99 lines
3.0 KiB
#include <bits/stdc++.h>
|
|
using namespace std;
|
|
|
|
int Prime(int x)
|
|
{
|
|
if (x == 1 || x == 0)
|
|
return 0;
|
|
if (x == 2 || x == 3)
|
|
return 1;
|
|
if (x % 2 == 0 || x % 3 == 0)
|
|
return 0;
|
|
for (int i = 2; i <= x / 2; i++)
|
|
{
|
|
if (x % i == 0)
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
int main()
|
|
{
|
|
freopen("D:/我的/大学/计算机类/1算法学习/CSP/筛法/P1217.txt", "w", stdout);
|
|
int d1, d2, d3, d4, d5, palindrome;
|
|
int k;
|
|
int a, b;
|
|
a = 5;
|
|
b = 100000000;
|
|
cout << "{";
|
|
//1
|
|
for (d1 = 1; d1 <= 9; d1 += 2)
|
|
{
|
|
palindrome = d1;
|
|
if (a > palindrome * 10)
|
|
break;
|
|
if (a <= palindrome && palindrome <= b && Prime(palindrome) == 1)
|
|
cout << palindrome << ",";
|
|
if (palindrome > b)
|
|
return 0;
|
|
}
|
|
//2
|
|
if (a <= 11 && 11 <= b)
|
|
cout << 11 << ",";
|
|
//3
|
|
for (d1 = 1; d1 <= 9; d1 += 2)
|
|
for (d2 = 0; d2 <= 9; d2++)
|
|
{
|
|
palindrome = 100 * d1 + 10 * d2 + d1;
|
|
if (a > palindrome * 10)
|
|
break;
|
|
if (a <= palindrome && palindrome <= b && Prime(palindrome) == 1)
|
|
cout << palindrome << ",";
|
|
if (palindrome > b)
|
|
return 0;
|
|
}
|
|
//5
|
|
for (d1 = 1; d1 <= 9; d1 += 2)
|
|
for (d2 = 0; d2 <= 9; d2++)
|
|
for (d3 = 0; d3 <= 9; d3++)
|
|
{
|
|
palindrome = 10000 * d1 + 1000 * d2 + 100 * d3 + 10 * d2 + d1;
|
|
if (a > palindrome * 10)
|
|
break;
|
|
if (a <= palindrome && palindrome <= b && Prime(palindrome) == 1)
|
|
cout << palindrome << ",";
|
|
if (palindrome > b)
|
|
return 0;
|
|
}
|
|
//7
|
|
for (d1 = 1; d1 <= 9; d1 += 2)
|
|
for (d2 = 0; d2 <= 9; d2++)
|
|
for (d3 = 0; d3 <= 9; d3++)
|
|
for (d4 = 0; d4 <= 9; d4++)
|
|
{
|
|
palindrome = 1000000 * d1 + 100000 * d2 + 10000 * d3 + 1000 * d4 + 100 * d3 + 10 * d2 + d1;
|
|
if (a > palindrome * 10)
|
|
break;
|
|
if (a <= palindrome && palindrome <= b && Prime(palindrome) == 1)
|
|
cout << palindrome << ",";
|
|
if (palindrome > b)
|
|
return 0;
|
|
}
|
|
//9
|
|
for (d1 = 1; d1 <= 9; d1 += 2)
|
|
for (d2 = 0; d2 <= 9; d2++)
|
|
for (d3 = 0; d3 <= 9; d3++)
|
|
for (d4 = 0; d4 <= 9; d4++)
|
|
for (d5 = 0; d5 <= 9; d5++)
|
|
{
|
|
palindrome = 100000000 * d1 + 10000000 * d2 + 1000000 * d3 + 100000 * d4 + 10000 * d5 + 1000 * d4 + 100 * d3 + 10 * d2 + d1;
|
|
if (a > palindrome * 10)
|
|
break;
|
|
if (a <= palindrome && palindrome <= b && Prime(palindrome) == 1)
|
|
cout << palindrome << ",";
|
|
if (palindrome > b)
|
|
return 0;
|
|
}
|
|
cout << "}";
|
|
return 0;
|
|
}
|