HDU 1431
可以先找出回文数,再用素数测试来判是否为素数即可。
打回文数时,因为左右对称,可以只枚举后半部,然后通过逆转得到前半部分。
- #include <iostream>
- #include <cstdio>
- #include <time.h>
- #include <stdlib.h>
- #include <algorithm>
- using namespace std;
- const int Max=200000;
- int huiwen[Max],answer[Max];
- int htop;
- int anter(int i){
- int ans=1;
- while(i){
- ans*=10;
- i--;
- }
- return ans;
- }
- int gethuiwen(int t,int p){
- int ans=0;
- while(p>1){
- ans*=10;
- ans+=(t%10);
- p/=10;
- t/=10;
- }
- return ans;
- }
- void for_back(){
- htop=0;
- for(int i=5;i<=9;i++)
- huiwen[htop++]=i;
- for(int i=2;i<=8;i++){
- int p=anter(i/2);
- // cout<<p<<endl;
- if(i%2){
- for(int k=0;k<=9;k++){
- for(int t=0;t<p;t++){
- if(t%10==0) continue;
- int tail=gethuiwen(t,p);
- // cout<<tail<<' '<<t<<endl;
- huiwen[htop++]=(tail*10+k)*p+t;
- }
- }
- }
- else{
- for(int t=0;t<p;t++){
- if(t%10==0) continue;
- int tail=gethuiwen(t,p);
- huiwen[htop++]=(tail)*p+t;
- }
- }
- }
- // cout<<huiwen[htop-1]<<endl;
- // for(int i=10;i<=50;i++)
- // cout<<huiwen[i]<<endl;
- }
- long long random(long long n){
- return (long long )((double)rand()/RAND_MAX*n+0.5);
- }
- long long quick(long long a,long long k,long long m){
- long long ans=1;
- while(k){
- if(k&1){
- ans=ans*a%m;
- }
- k>>=1;
- a=a*a%m;
- }
- return ans;
- }
- bool Miller_Rabin(long long k){
- for(int i=1;i<=50;i++){
- long long a=random(k-2)+1;
- if(quick(a,k-1,k)!=1)
- return false;
- }
- return true;
- }
- int main(){
- srand(time(0));
- for_back();
- int tmp=htop; htop=0;
- // cout<<huiwen[tmp-1]<<endl;
- for(int i=0;i<tmp;i++){
- // cout<<"NO"<<endl;
- if(Miller_Rabin(huiwen[i])){
- // cout<<"YES"<<endl;
- // break;
- huiwen[htop++]=huiwen[i];
- }
- }
- int a,b,ast;
- while(scanf("%d%d",&a,&b)!=EOF){
- ast=0;
- for(int i=0;i<htop;i++){
- if(huiwen[i]>=a&&huiwen[i]<=b)
- answer[ast++]=huiwen[i];
- }
- sort(answer,answer+ast);
- for(int i=0;i<ast;i++)
- printf("%d\n",answer[i]);
- cout<<endl;
- }
- return 0;
- }
HDU 1431的更多相关文章
- HDU 1431 思维 基础数论
找范围内回文素数,最大到1e8,我就是要枚举回文串,再判素数,然后因为这种弱智思路死磕了很久题目. /** @Date : 2017-09-08 15:24:43 * @FileName: HDU 1 ...
- F题 hdu 1431 素数回文
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431 素数回文 Time Limit: 2000/1000 MS (Java/Others) M ...
- HDU 1431 素数回文 离线打表
题目描述:给定一个区间,将这个区间里所有既是素数又是回文数的数输出来. 题目分析:这题的这个数据范围比较大,达到了10^8级别,而且输入的数据有多组,又因为判断一个数是否是回文数貌似只有暴力判断,时间 ...
- HDU 1431 素数回文
有人问我这个问题. 个人感觉暴搜会TLE O(n*sqrt(n)).n=100000000:(推断素数用2~sqrt(n)+1 去除) 还是枚举好了. 枚举 1~10000,把他每一位存下来,回文数已 ...
- 题解报告:hdu 1431 素数回文
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431 Problem Description xiaoou33对既是素数又是回文的数特别感兴趣.比如说 ...
- hdu 1431 素数回文(暴力打表,埃托色尼筛法)
这题开始想时,感觉给的范围5 <= a < b <= 100,000,000太大,开数组肯定爆内存,而且100000000也不敢循环,不超时你打我,反正我是不敢循环. 这题肯定得打表 ...
- ACM_回文素数
回文素数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 131号是一个主回文,因为它是一个素数和一个回文(当向后读时,它是相同的 ...
- FZU ICPC 2020 寒假训练 2
A - 排序 输入一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若 干非负整数(可能有些整数以'0'开头,这些头部的'0'应该被忽略掉,除非这个整数就是由 若干个'0'组 ...
- 转载:hdu 题目分类 (侵删)
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...
随机推荐
- luogu3911 最小公倍数之和
题目大意 给出一些数\(A_1,A_2,\cdots A_n\),求 \[\sum_{i=1}^{n}\sum_{j=1}^{n}\mathrm{lcm}(A_i,A_j)\] \(A_i,A_n\l ...
- [POJ 3621] Sightseeing Cows
[题目链接] http://poj.org/problem?id=3621 [算法] 01分数规划(最优比率环) [代码] #include <algorithm> #include &l ...
- SimpleMappingExceptionResolver异常映射
转自:https://blog.csdn.net/qqqqqq654/article/details/65767701 SimpleMappingException异常映射 当异常发生时,我们可以将它 ...
- HTML不熟悉方法总结
1. onblur 属性在元素失去焦点时触发. 2. onfocus 属性在元素获得焦点时触发. 3.addEventlistener 事件监听 4.focus() 方法用于给予该元素焦点.这样用 ...
- postgresql 备份(pg_dump,pg_restore)
PG提供物理备份和逻辑备份(本篇主要讲逻辑备份)物理备份:WAL热备份逻辑备份:pg_dump,pg_dumpall,恢复时pg_restore 查看帮助命令: pg_dump --help 跟MyS ...
- 第一个"hello python!"
第一个python程序"hello python!" 首先打开我们的编辑器,在安装好python后,直接在windows快捷方式里,输入IDLE,就可以看到我们的python默认自 ...
- 在量化金融中15个最流行的Python数据分析库
Python是当今应用最广泛的编程语言之一,以其效率和代码可读性著称.作为一个科学数据的编程语言,Python介于R和java之间,前者主要集中在数据分析和可视化,而后者主要应用于大型应用.这种灵活性 ...
- Android之MVP架构
MVP(Model View Presenter)模式是由MVC模式发展而来的,在如今的Android程序开发中显得越来越重要.本篇文章简单讨论了MVP模式的思想. 啥是MVP MVP模式的主要思想是 ...
- CSS3实现简单的幻灯片
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 装饰模式(Decorator)C++实现
装饰模式 层层包装,增强功能.这就是装饰模式的要旨!装饰器模式就是基于对象组合的方式,可以很灵活的给对象添加所需要的功能.它把需要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象. 意图: 动 ...