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

题目描述

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

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

输入输出格式

输入格式:

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

输出格式:

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

输入输出样例

输入样例#1:

5 500
输出样例#1:

5
7
11
101
131
151
181
191
313
353
373
383

说明

Hint 1: Generate the palindromes and see if they are prime.

提示 1: 找出所有的回文数再判断它们是不是质数(素数).

Hint 2: Generate palindromes by combining digits properly. You might need more than one of the loops like below.

提示 2: 要产生正确的回文数,你可能需要几个像下面这样的循环。

题目翻译来自NOCOW。

USACO Training Section 1.5

产生长度为5的回文数:

for (d1 = 1; d1 <= 9; d1+=2) { // 只有奇数才会是素数

     for (d2 = 0; d2 <= 9; d2++) {
for (d3 = 0; d3 <= 9; d3++) {
palindrome = 10000*d1 + 1000*d2 +100*d3 + 10*d2 + d1;//(处理回文数...)
}
}
}

 思路:

  如题。

代码:

#include <iostream>
#include <cstdio>
#include <cmath> using namespace std; const int N = 1e8 + ;
const int M = 6e7;
int a,b; int pd(int x)
{
if(x==||x==) return ;
if(x%== || x==) return ;
int j=;
while(j<=sqrt(x)&&x%j!=) j+=;
if(x%j==) return ;
else return ;
} void get_hui()
{
int num;
int aa=a;
while(aa<)
{
if(pd(aa) && aa>=a) printf("%d\n",aa);
aa++;
}
for(int i=;i<=;i+=)
{
num=i*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
num=i*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
num=i*+j*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
for(int k=;k<=;k++)
{
num=i*+j*+k*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
for(int k=;k<=;k++)
{
num=i*+j*+k*+k*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
for(int k=;k<=;k++)
{
for(int w=;w<=;w++)
{
num=i*+j*+k*+w*+k*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
}
}
for(int i=;i<=;i+=)
{
for(int j=;j<=;j++)
{
for(int k=;k<=;k++)
{
for(int w=;w<=;w++)
{
num=i*+j*+k*+w*+w*+k*+j*+i;
if(num>b) return;
if(num>=a && pd(num)) printf("%d\n",num);
}
}
}
}
} int main()
{
scanf("%d%d",&a,&b);
get_hui();
return ;
}

luogu P1217 [USACO1.5]回文质数 Prime Palindromes x的更多相关文章

  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. P1217 [USACO1.5]回文质数 Prime Palindromes

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

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

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

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

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

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

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

  7. (函数)P1217 [USACO1.5]回文质数 Prime Palindromes

    题解: 第一次: 算法复杂度过高,导致编译超时,需要优化 #include<stdio.h>#include<math.h>int a[100000001] = { 0 };i ...

  8. Java实现 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes

    import java.util.Scanner; public class Main { private static Scanner cin; public static void main(St ...

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

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

随机推荐

  1. 20191127 Spring Boot官方文档学习(9.1-9.3)

    9."使用方法"指南 9.1.Spring Boot应用程序 9.1.1.创建自己的FailureAnalyzer FailureAnalyzer被包装在FailureAnalys ...

  2. 关于Logcat

    1 android logcat api Log.i(String tag, String msg) info,普通信息 Log.d(String tag, String msg) debug,调试信 ...

  3. Nginx 的root和 alias

    nginx是通过alias设置虚拟目录,在nginx的配置中,alias目录和root目录是有区别的:1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alia ...

  4. Linux rsync 远程同步部署篇

    rsync官网: www.samba.org/ftp/rsync.html端口:873上机实战系列项目100台规模集群全网数据备份解决方案3.本项目提供免费实战讲解视频:Linux集群全网服务器数据备 ...

  5. Tensorflow模型保存与加载

    在使用Tensorflow时,我们经常要将以训练好的模型保存到本地或者使用别人已训练好的模型,因此,作此笔记记录下来. TensorFlow通过tf.train.Saver类实现神经网络模型的保存和提 ...

  6. 《剑指offer》面试题26 复杂链表的复制 Java版

    (定义一个新的数据结构,每个节点除了具有普通链表的next域外,还有一个额外的引用指向任意节点.我们要对由该特殊数据结构形成的链表进行复制.) 我的方法:也就是克隆一个这种特殊链表,很快想到先不考虑原 ...

  7. Dungeon Master (三维bfs)

    You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of un ...

  8. php中引入facebook的messenger消息接口

    前一段时间需要开发一个messenger的消息接口,但是facebook的官方文档似是而非,而且由于在国内比较小众,之前也没有另外的人写过中文的开发教程,只好自己进行了一番研究并完成了一个demo,希 ...

  9. 07java进阶——集合框架(set)

    1.list接口中常用的特有方法 package cn.jxufe.java.chapter7; import java.util.ArrayList; import java.util.List; ...

  10. vecto容器中一些没有注意到的地方

    vector容器 vectoor是一个单口容器. vector动态增长的基本原理 当插入新元素的时候,如果空间不足,那么vector会重新申请更大的一块内存空间,将原空间数据拷贝到新空间,释放旧空间的 ...