P1217  Prime Palindromes

题目描述

因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。

写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)( 一亿)间的所有回文质数;

输入格式:

第 1 行: 二个整数 a 和 b .

输出格式:

输出一个回文质数的列表,一行一个。

思路:枚举一半长度的整数即可。

代码:

 #include"bits/stdc++.h"
#define ll long long
#define ci(x) scanf("%d",&x)
#define cd(x) scanf("%lf",&x)
#define cl(x) scanf("%lld",&x)
#define pi(x) printf("%d\n",x)
#define pd(x) printf("%f\n",x)
#define pl(x) printf("%lld\n",x)
using namespace std;
const int N = 1e6 + ;
const int mod = 1e9 + ;
ll a[N],b[N]; ll mod_mul(ll a, ll b, ll mod) {
ll ret = ;
while(b) {
if(b & ) ret = (ret + a) % mod;
a = (a + a) % mod;
b >>= ;
}
return ret;
} ll mod_exp(ll a, ll b, ll mod) {
ll ret = ;
while(b) {
if(b & ) ret = mod_mul(ret, a, mod);
a = mod_mul(a, a, mod);
b >>= ;
}
return ret;
} bool check(ll a, ll n) {
ll x = n - , y;
int t = ;
while((x & ) == ) {
x >>= ;
t++;
}
x = mod_exp(a, x, n); for(int i = ; i <= t; i++) {
y = mod_exp(x, , n);
if(y == && x != && x != n - ) return true;
x = y;
}
if(y != ) return true;
return false;
} bool mill(ll n, int times = ) {
if(n == ) return true;
if(n == || !(n & )) return false; for(int i = ; i <= times; i++) {
ll a = rand() % (n - ) + ;
if(check(a, n)) return false;
}
return true;
}
int p=,q=;
int n;
int l,r;
void init()//预处理出所有的回文质数
{
string f,e;
a[]=;
for(ll i=;i<=;i++){
e=to_string(i);
f=e;
reverse(f.begin(),f.end());
e=e+f;
ll x=(ll)atoi(e.data());
if(mill(x)==) b[q++]=x; e=to_string(i);
f=e.substr(,e.size()-);
reverse(f.begin(),f.end());
e=e+f;
ll y=(ll)atoi(e.data());
if(mill(y)==) a[p++]=y;
}
int k=;
for(int i=p;i<p+q;i++) a[i]=b[k++];
sort(a,a+p+q);
n=p+q;
}
int main ()
{
init();
ios::sync_with_stdio();
cin>>l>>r;
for(int i=;i<n;i++) if(l<=a[i]&&a[i]<=r) pl(a[i]);
return ;
}

[USACO1.5] 回文质数的更多相关文章

  1. P1217 [USACO1.5]回文质数 Prime Palindromes(求100000000内的回文素数)

    P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...

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

    P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...

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

    P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...

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

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

  5. 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes【取回文数/数论/字符串】

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

  6. P1217 [USACO1.5]回文质数 Prime Palindromes(stringstream,sizeof(num)/sizeof(num[0]),打表)

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

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

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

  8. P1217 [USACO1.5]回文质数 Prime Palindromes(技巧+暴力枚举+线性筛)

    技巧:就是偶数位的回文数字一定不是质数---------证明:奇数位之和sum1==偶数位之和sum2的数字可以被11整除.(11除外,这是一个坑点) 最高位,最低位必须是 1, 3, 7, 9 暴力 ...

  9. 洛谷 P1217 [USACO1.5]回文质数 Prime Palindrome

    嗯... 这道题对于蒟蒻的我来说实在是TQL... 先看一下题:(题目链接:https://www.luogu.org/problemnew/show/P1217) 然后说一下我的做题过程吧: 一看到 ...

随机推荐

  1. 配置Slf4j依赖,桥接各种多个日志组件(排除commons-logging依赖的影响)

    由于各个jar组件使用的日志框架不一样,实际项目中可能会引入多个jar,通常使用的日志框架有 commons-logging log4j 若同一个项目引入多个日志组件,那么Slf4j组件会有不能捕捉到 ...

  2. maven课程 项目管理利器-maven 3-1 maven常用的构建命令

    mvn -v 查看mvn版本 mvn compile  编译 mvn test 测试 mvn package 编译,打包(这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功 ...

  3. 关于th,td,tr的一些相关标签

    tr表示行,td表示列,th其实也是表示列但是在这个标签中的文字会以粗体出现 <th>为表格标题,属性summar为摘要, <caption>标签为首部说明, <thea ...

  4. laravel安装时openssl_encrypt() 的问题?Call to undefined function openssl_decrypt()

    解决方案: 如果通过上面的步骤还是不能解决参考如下: 1.从php安装根目录中拷贝 libeay32.dll 和 ssleay32.dll 然后 覆盖掉apache/bin 下的对应文件(注意需要将h ...

  5. js屏蔽鼠标操作

    document.body.onselectstart=document.body.oncontextmenu=function(){ return false;}

  6. 【Android 界面效果49】RecyclerView高度随Item自适应

    编写RecyclerView.ItemDecoration时,在onDraw方法中,Drawable的高度等于RecyclerView的高度减去RecyclerView的上下padding. @Ove ...

  7. ansible使用8-Best Practices

    Content Organization production # inventory file for production servers stage # inventory file for s ...

  8. C#对bat脚本文件的操作示例

    实现C#操作bat脚本文件 using System;using System.Collections.Generic;using System.ComponentModel;using System ...

  9. Tomcat配置文件server.xml分析

    本文力求,分析清楚 tomcat 的 server.xml 文件,逐步完善更新 常用来,配置tomcat启动,端口号:配置编码等. apache-tomcat-9.0.10/conf/server.x ...

  10. SIEMENS Simotion 运动控制器设置Web service, HTTP, FTP访问密码

    早期版本的web service, 访问密码是 用户名 : simotion 密码 : simotion 新版本,Firmware >= 4.4之后,考虑到安全性,控制器没有默认密码.设置密码方 ...