https://www.luogu.org/problemnew/show/P1217

考虑暴力生成所有的回文数然后再判断是不是质数。注意个位的选择实际上只有4种。所以是 $4*10^3*10^3=4*10^6$ ,完全充裕的复杂度。

#include<bits/stdc++.h>
using namespace std;
#define ll long longint a,b;
vector<int> ans;bool isp(int n){int c=sqrt(n+1e-4);for(int i=2;i<=c;i++){if(n%i==0)return false;}return true;
}void gen1(){if(a<=2&&2<=b)ans.push_back(2);if(a<=3&&3<=b)ans.push_back(3);if(a<=5&&5<=b)ans.push_back(5);if(a<=7&&7<=b)ans.push_back(7);
}void gen2(){for(int d=1;d<=9;d++){if(d!=5){int p=11*d;if(a<=p&&p<=b)if(isp(p))ans.push_back(p);}}
}void gen3(){for(int d=1;d<=9;d++){if(d!=5){for(int d2=0;d2<=9;d2++){int p=101*d+10*d2;if(a<=p&&p<=b)if(isp(p))ans.push_back(p);}}}
}void gen4(){for(int d=1;d<=9;d++){if(d!=5){for(int d2=0;d2<=9;d2++){int p=1001*d+110*d2;if(a<=p&&p<=b)if(isp(p))ans.push_back(p);}}}
}void gen5(){for(int d=1;d<=9;d++){if(d!=5){for(int d2=0;d2<=9;d2++){for(int d3=0;d3<=9;d3++){int p=10001*d+1010*d2+100*d3;if(a<=p&&p<=b)if(isp(p))ans.push_back(p);}}}}
}void gen6(){for(int d=1;d<=9;d++){if(d!=5){for(int d2=0;d2<=9;d2++){for(int d3=0;d3<=9;d3++){int p=100001*d+10010*d2+1100*d3;if(a<=p&&p<=b)if(isp(p))ans.push_back(p);}}}}
}void gen7(){for(int d=1;d<=9;d++){if(d!=5){for(int d2=0;d2<=9;d2++){for(int d3=0;d3<=9;d3++){for(int d4=0;d4<=9;d4++){int p=1000001*d+100010*d2+10100*d3+1000*d4;if(a<=p&&p<=b)if(isp(p))ans.push_back(p);}}}}}
}void gen8(){for(int d=1;d<=9;d++){if(d!=5){for(int d2=0;d2<=9;d2++){for(int d3=0;d3<=9;d3++){for(int d4=0;d4<=9;d4++){int p=10000001*d+1000010*d2+100100*d3+11000*d4;if(a<=p&&p<=b)if(isp(p))ans.push_back(p);}}}}}
}void solve(){gen1();gen2();gen3();gen4();gen5();gen6();gen7();gen8();
}int main(){scanf("%d%d",&a,&b);solve();sort(ans.begin(),ans.end());for(auto i:ans)printf("%d\n",i);
}

转载于:https://www.cnblogs.com/Yinku/p/10315468.html

洛谷 - P1217 - 回文质数 - 枚举相关推荐

  1. 洛谷P1217 回文质数

    题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b] (5 \le a < b \le 100,000 ...

  2. P1217 回文质数

    题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b] (5 <= a < b <= 100 ...

  3. P1217 回文质数(打表)

    2020.2.9更新,修改打表程序,用上freopen("Table.txt", "w", stdout);程序更加简洁 题目描述 因为151既是一个质数又是一 ...

  4. 10.10做题——USACO1.2/洛谷1207回文平方数(Dual Palindromes)

    first thing:我市杨家巷发生一起爆炸事故,死亡17人,愿逝者安息! second thing:明天NOIP初赛,RP++,排名–;分数++; third thing:好像USACO评测系统真 ...

  5. 洛谷P1015回文数

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个十进制数56,将56加65(即把5656从右向左读),得到121是一个回文数. 又如:对于十进制数 ...

  6. 暴力枚举——回文质数(洛谷 P1217)

    题目选自洛谷P1217 此题异常的坑,需要很多的处理和简化: 1.回文质数一定不是2的倍数,因为质数不可能是2的倍数: 2.最大的回文质数是9989899(自己测). 于是,本蒟蒻的代码就出来了 题目 ...

  7. 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes 题解 C/C++

    知识点: 回文数有两种 一种是单数位数,abcba,一种是双数位数,abccba 而双数位数是质数的只有11,即偶位回文数全不是质数除了11:所以不需要枚举到1亿,到1千万就好了 以下几种方法供参考 ...

  8. 洛谷 - P1217 [USACO1.5]回文质数 Prime Palindromes(欧拉线性筛+数论小知识)

    题目链接:点击查看 题目大意:给出一个a和b,求出区间[a,b]中所有回文质数,回文质数指的是一个数既是回文数也是质数 题目分析:首先质数好判断,我们只需要用欧拉筛预处理打好表即可,判断回文数我们也只 ...

  9. 回文质数(洛谷-P1217)

    题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...

最新文章

  1. 最新Visual Studio 2010 下载及学习资料
  2. AI算法工程师必备技术,快快积累!
  3. hive与hbase的联系与区别
  4. Java中,异常处理try catch的作用域是局部的
  5. 初步了解python
  6. 无法初始化Winsock2.2处理
  7. 使用SmartUpload上传文件报错
  8. 米思齐(Mixly)图形化系列教程(四)-运算符
  9. python字符串去掉最后的逗号_拼接字符串时去掉最后一个多余逗号
  10. 制作一幅简单的ArcGIS故事地图
  11. 宝利通网闸怎么设置_polycomMCU操作指南
  12. TTMS剧院票务管理系统全网最全!!!不接受反驳
  13. 各版本VOS服务的停止、启动和重启命令详解
  14. 关于C语言的system函数用法
  15. 词袋模型和词向量模型
  16. autojs编写的网易云音乐和视频搜索脚本源代码免费分享开源
  17. Kubernetes 在网易云中的落地优化实践
  18. 深入理解:scp,rsync,sftp,xsync等命令的基本使用方法,以及cmd命令窗口下进行相关的ssh命令操作
  19. 菜鸟网html dom对象,JavaScript学习指南
  20. 卷积满足交换律:F*G(x)=G*F(x)

热门文章

  1. 最短路径算法----Dijkstra (转)
  2. Opencv3编程入门学习笔记(二)之显式创建Mat对象
  3. FPGA设计的常用思想与技巧(转)
  4. ATLAS数学库编译
  5. 时间序列 线性回归 区别_时间序列分析的完整介绍(带R)::线性过程I
  6. 代码覆盖率测试工具:gcov和lcov的使用
  7. 你以为有白金卡就很牛逼?错!
  8. 如何看透借款人的隐形负债?
  9. 个人贷款5级分类,来看看你是哪一级
  10. Perl split字符串分割函数用法指南