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

题目描述

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

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

输入输出格式

输入格式:

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

输出格式:

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

输入输出样例

输入样例#1:

  1. 5 500
输出样例#1:

  1. 5
  2. 7
  3. 11
  4. 101
  5. 131
  6. 151
  7. 181
  8. 191
  9. 313
  10. 353
  11. 373
  12. 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) { // 只有奇数才会是素数

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

 思路:

  如题。

代码:

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. const int N = 1e8 + ;
  8. const int M = 6e7;
  9. int a,b;
  10.  
  11. int pd(int x)
  12. {
  13. if(x==||x==) return ;
  14. if(x%== || x==) return ;
  15. int j=;
  16. while(j<=sqrt(x)&&x%j!=) j+=;
  17. if(x%j==) return ;
  18. else return ;
  19. }
  20.  
  21. void get_hui()
  22. {
  23. int num;
  24. int aa=a;
  25. while(aa<)
  26. {
  27. if(pd(aa) && aa>=a) printf("%d\n",aa);
  28. aa++;
  29. }
  30. for(int i=;i<=;i+=)
  31. {
  32. num=i*+i;
  33. if(num>b) return;
  34. if(num>=a && pd(num)) printf("%d\n",num);
  35. }
  36. for(int i=;i<=;i+=)
  37. {
  38. for(int j=;j<=;j++)
  39. {
  40. num=i*+j*+i;
  41. if(num>b) return;
  42. if(num>=a && pd(num)) printf("%d\n",num);
  43. }
  44. }
  45. for(int i=;i<=;i+=)
  46. {
  47. for(int j=;j<=;j++)
  48. {
  49. num=i*+j*+j*+i;
  50. if(num>b) return;
  51. if(num>=a && pd(num)) printf("%d\n",num);
  52. }
  53. }
  54. for(int i=;i<=;i+=)
  55. {
  56. for(int j=;j<=;j++)
  57. {
  58. for(int k=;k<=;k++)
  59. {
  60. num=i*+j*+k*+j*+i;
  61. if(num>b) return;
  62. if(num>=a && pd(num)) printf("%d\n",num);
  63. }
  64. }
  65. }
  66. for(int i=;i<=;i+=)
  67. {
  68. for(int j=;j<=;j++)
  69. {
  70. for(int k=;k<=;k++)
  71. {
  72. num=i*+j*+k*+k*+j*+i;
  73. if(num>b) return;
  74. if(num>=a && pd(num)) printf("%d\n",num);
  75. }
  76. }
  77. }
  78. for(int i=;i<=;i+=)
  79. {
  80. for(int j=;j<=;j++)
  81. {
  82. for(int k=;k<=;k++)
  83. {
  84. for(int w=;w<=;w++)
  85. {
  86. num=i*+j*+k*+w*+k*+j*+i;
  87. if(num>b) return;
  88. if(num>=a && pd(num)) printf("%d\n",num);
  89. }
  90. }
  91. }
  92. }
  93. for(int i=;i<=;i+=)
  94. {
  95. for(int j=;j<=;j++)
  96. {
  97. for(int k=;k<=;k++)
  98. {
  99. for(int w=;w<=;w++)
  100. {
  101. num=i*+j*+k*+w*+w*+k*+j*+i;
  102. if(num>b) return;
  103. if(num>=a && pd(num)) printf("%d\n",num);
  104. }
  105. }
  106. }
  107. }
  108. }
  109.  
  110. int main()
  111. {
  112. scanf("%d%d",&a,&b);
  113. get_hui();
  114. return ;
  115. }

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. ssh远程登录过程中卡住

    1.首先排查网络连通性,查看网络是否通畅,远程端口是否开放 2.查看服务器复制,cpu,内存负载是否过大 3.检查ssh配置,查看以下配置是否这样配置 UseDNS no GSSAPIAuthenti ...

  2. Java Mail 附件名太长导致接收端附件名解析出错

    问题前提:公司需要往邮件中写 excle 文件,返送成功后发现文件格式有误(如:xxxx.bat 等文件后缀),但是有些文件又不会, 后来发现是由于文件名称太长所导致. 问题原因:java mail中 ...

  3. idea使用Vue的v-bind,v-on报错

    参考解决在WebStorm中使用Vue的v-bind,v-on报错 File-->Settings-->Editor-->Inspections-->XML 把 Unbound ...

  4. Aliyun-Centos 7 LNMP安装(最新版LNMP)

    linux装软件方式:1.源码安装:下载wget-->解压tar -zxvf -->配置 ./configure --->编译make -->安装 make install 2 ...

  5. linux系统管理基础知识

    1.linux的安装配置 虚拟机安装 Linux安装和分区 IP地址的配置 ifup eth0,ifdoen eth0 关闭不常用的程序 关闭selinux 远程登录(多用户,多任务) 用户和角色划分 ...

  6. tensorflow学习笔记三----------基本操作

    tensorflow中的一些操作和numpy中的很像,下面列出几个比较常见的操作 import tensorflow as tf #定义三行四列的零矩阵 tf.zeros([3,4]) #定义两行三列 ...

  7. git命令?

    #文件及文件夹创建删除    mkdir  文件名称    (创建文件夹)    touch  文件名称    (创建文件)    rm -r  文件名称     (递归删除)    rm -rf 文 ...

  8. go & Windows Service

    相关库 https://godoc.org/golang.org/x/sys/windows/svc https://github.com/kardianos/service https://gith ...

  9. #define 宏实现函数功能可能存在的问题

    #define 宏实现函数功能的问题 情形1 #define free_ptr(p) \ if(p) delete p; p = nullptr; 在调用free_ptr(p)的地方展开看这段代码: ...

  10. express热更新nodemon,自启动项目

    一.说一下 每次修改文件,我们都需要重启服务器npm start,很麻烦,所以使用引入nodemon插件,解决这个问题,实现保存文件,即自启动刷新项目 二.直接开码 npm install nodem ...