标签:ret 题目 提示 check ali out usaco amp set
先按照题目提示把回文数搞出来,然后挨个判断素数即可。
#include<iostream>
#include<set>
using namespace std;
set<int> s;
int a[10];
int m, n;
int check(int t){
for(int i = 2; i <= t / i; i ++)
if(t % i == 0) return 0;
return 1;
}
void dfs(int n, int u, int k){
if(u == n){
int ans = 0;
for(int i = 0; i < u - k; i ++) ans = ans * 10 + a[i];
if(k) ans = ans * 10 + a[u - 1];
for(int i = u - 1 - k; i >= 0; i --) ans = ans * 10 + a[i];
s.insert(ans);
return;
}
for(int i = (u ? 0 : 1); i < 10; i ++){
a[u] = i;
dfs(n, u + 1, k);
}
}
int main(){
for(int i = 1; i <= 8; i ++){
if(i & 1) dfs(i / 2 + 1, 0, 1);
else dfs(i / 2, 0, 0);
}
cin >> m >> n;
for(auto t : s)
if(t >= m && t <= n && check(t)) cout << t << endl;
return 0;
}
P1217 [USACO1.5]回文质数 Prime Palindromes
标签:ret 题目 提示 check ali out usaco amp set
原文地址:https://www.cnblogs.com/tomori/p/13777205.html