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. ...
随机推荐
- luogu2261 [CQOI2007] 余数之和
题目大意 求 \[\sum_{i=1}^{n}(k\mod i)\] \(n,k\leq 10^9\). 题解 先只考虑\(n\leq k\)的情况. \[\sum_{i=1}^{n}(k\mod i ...
- JavaScript大数组如何根据对象的key快速找到并删除
查找:上代码. function isBigEnough(element) { return element >= 15; } var ret1 = [12, 5, 8, 130, 44].fi ...
- oc24--description
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { int _age; double ...
- String不可变性
今天分析一下String,String有很多实用的特性,比如说“不可变性”,是工程师精心设计的艺术品.用final就是拒绝继承,防止内部属性或方法被破坏. 一,什么是不可变? String不可变很简单 ...
- xBIM 基础02 快速入门
系列目录 [已更新最新开发文章,点击查看详细] 一.新建项目 Visual Studio 新建项目.项目创建完成后 Nuget ,项目添加 Xbim.Essentials,那么如果项目需要几何 ...
- A - A Compatible Pair
Problem description Nian is a monster which lives deep in the oceans. Once a year, it shows up on th ...
- (转载) 小议TCP的MSS(最大分段)以及MTU(最大传输单元)
[背景知识] MTU: Maximum Transmission Unit 最大传输单元 MSS: Maximum Segment Size 最大分段大小PPPoE: PPP Over Ethern ...
- laydate.js时间选择
例子: <asp:HiddenField ID="hfdDateBuid3" runat="server" /> <script type=& ...
- 2018最新WordPress缩略图设置方法
缩略图设置的方法很多,但都不全面,且很多教程已经失效了,其中使用插件来实现,可是那些插件都使用过都不能实现效果,所以我整理了一份使用代码实现缩略图的方法. 1.找到网站根目录/wp-content/t ...
- 图片加载AsyncTask并发问题
在列表控件中使用AsycnTask加载图片时,会带来并发问题. 如果每个子视图都触发一个AsyncTask,因为AsyncTask内部是一个线程池,并发触发时,不能确保每个子视图的AsyncTask都 ...