码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-10-07 21:26:21      阅读:27      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!