洛谷 - P1217 - 回文质数 - 枚举
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 - 回文质数 - 枚举相关推荐
- 洛谷P1217 回文质数
题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b] (5 \le a < b \le 100,000 ...
- P1217 回文质数
题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b] (5 <= a < b <= 100 ...
- P1217 回文质数(打表)
2020.2.9更新,修改打表程序,用上freopen("Table.txt", "w", stdout);程序更加简洁 题目描述 因为151既是一个质数又是一 ...
- 10.10做题——USACO1.2/洛谷1207回文平方数(Dual Palindromes)
first thing:我市杨家巷发生一起爆炸事故,死亡17人,愿逝者安息! second thing:明天NOIP初赛,RP++,排名–;分数++; third thing:好像USACO评测系统真 ...
- 洛谷P1015回文数
题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个十进制数56,将56加65(即把5656从右向左读),得到121是一个回文数. 又如:对于十进制数 ...
- 暴力枚举——回文质数(洛谷 P1217)
题目选自洛谷P1217 此题异常的坑,需要很多的处理和简化: 1.回文质数一定不是2的倍数,因为质数不可能是2的倍数: 2.最大的回文质数是9989899(自己测). 于是,本蒟蒻的代码就出来了 题目 ...
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes 题解 C/C++
知识点: 回文数有两种 一种是单数位数,abcba,一种是双数位数,abccba 而双数位数是质数的只有11,即偶位回文数全不是质数除了11:所以不需要枚举到1亿,到1千万就好了 以下几种方法供参考 ...
- 洛谷 - P1217 [USACO1.5]回文质数 Prime Palindromes(欧拉线性筛+数论小知识)
题目链接:点击查看 题目大意:给出一个a和b,求出区间[a,b]中所有回文质数,回文质数指的是一个数既是回文数也是质数 题目分析:首先质数好判断,我们只需要用欧拉筛预处理打好表即可,判断回文数我们也只 ...
- 回文质数(洛谷-P1217)
题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...
最新文章
- 最新Visual Studio 2010 下载及学习资料
- AI算法工程师必备技术,快快积累!
- hive与hbase的联系与区别
- Java中,异常处理try catch的作用域是局部的
- 初步了解python
- 无法初始化Winsock2.2处理
- 使用SmartUpload上传文件报错
- 米思齐(Mixly)图形化系列教程(四)-运算符
- python字符串去掉最后的逗号_拼接字符串时去掉最后一个多余逗号
- 制作一幅简单的ArcGIS故事地图
- 宝利通网闸怎么设置_polycomMCU操作指南
- TTMS剧院票务管理系统全网最全!!!不接受反驳
- 各版本VOS服务的停止、启动和重启命令详解
- 关于C语言的system函数用法
- 词袋模型和词向量模型
- autojs编写的网易云音乐和视频搜索脚本源代码免费分享开源
- Kubernetes 在网易云中的落地优化实践
- 深入理解:scp,rsync,sftp,xsync等命令的基本使用方法,以及cmd命令窗口下进行相关的ssh命令操作
- 菜鸟网html dom对象,JavaScript学习指南
- 卷积满足交换律:F*G(x)=G*F(x)