嗯...

这道题对于蒟蒻的我来说实在是TQL...

先看一下题:(题目链接:https://www.luogu.org/problemnew/show/P1217)

然后说一下我的做题过程吧:

一看到是普及-的题,就没有考虑什么筛法,只是用最暴力的筛素数的方法做的,然后就导致最后一个点TLE;

接着是一个改进,又用了埃氏筛,可是它太不稳定了,然后数组总是开小,然后就各种TLE,MLE,RE...

最后用的是欧拉筛(线性筛),然后还是最后一个点TLE...然后就很纳闷,看了题解之后才发现有这样的一个东西:

1.偶数位数回文数(除11)必定不是质数(自行百度),所以只要运行到10000000

然后发现将读入后的b进行一次判断就可以了,然后这种方法,暴力筛还是TLE,埃氏筛由于不稳定也TLE,最终还是只有欧拉筛(线性筛)好用....

思路:

主要是在a到b的这段区间中先判断是否为回文数(注意判断回文数的方法),并且用欧拉筛判断是否为素数即可...

重难点:

  偶数位数回文数(除11)必定不是质数(自行百度),所以只要运行到10000000

否则会一直TLE(不开O2)

下面是欧拉筛的AC代码:

 1 #include<cstdio>
 2 #include<iostream>
 3
 4 using namespace std;
 5
 6 int a, b;
 7 const int maxn = 10000005;
 8
 9 int cnt;
10 int prime[maxn];
11 int vis[maxn];
12 bool pp[maxn];
13
14 inline void is_prime(){
15     for(int i = 2; i <= b; i++){
16         if(!vis[i]) prime[++cnt] = i, pp[i] = 1;
17         for(int j = 1; j <= cnt && i * prime[j] <= b; j++){
18                vis[i * prime[j]] = true;
19             if(i % prime[j] == 0) break;
20            }
21        }
22 }//欧拉筛判断质数
23
24 inline int hui_wen(int x){
25     int t = 0;
26     int y = x;
27     while(y != 0){
28         t = t * 10 + y % 10;
29         y = y / 10;
30     }
31     if(t == x) return 1;
32     return 0;
33 }//判断回文数
34
35 int main(){
36     scanf("%d%d", &a, &b);
37     if(b > 10000000) b = 10000000;//重点
38     is_prime();
39     for(int i = a; i <= b; i++){
40         int n = i;
41         if(hui_wen(n) && pp[n] ) printf("%d\n", n);
42     }
43     return 0;
44 }

转载于:https://www.cnblogs.com/New-ljx/p/10686537.html

洛谷 P1217 [USACO1.5]回文质数 Prime Palindrome相关推荐

  1. 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes 题解 C/C++

    知识点: 回文数有两种 一种是单数位数,abcba,一种是双数位数,abccba 而双数位数是质数的只有11,即偶位回文数全不是质数除了11:所以不需要枚举到1亿,到1千万就好了 以下几种方法供参考 ...

  2. 洛谷 - P1217 [USACO1.5]回文质数 Prime Palindromes(欧拉线性筛+数论小知识)

    题目链接:点击查看 题目大意:给出一个a和b,求出区间[a,b]中所有回文质数,回文质数指的是一个数既是回文数也是质数 题目分析:首先质数好判断,我们只需要用欧拉筛预处理打好表即可,判断回文数我们也只 ...

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

    我就叫大家打表吧,自己也刚学会: 由于有些题目直接提交又会超时,所以打表是一个不错的解决方法. 对于回文质数而言,判断回文,判断质数就ok了 1.存入文件 #include<bits/stdc+ ...

  4. P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表)

    P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表) 一:埃氏筛(时间复杂度--nloglogn) 重点:一个数x是合数,则它的倍数也是合数 //用埃氏筛生成 ...

  5. P1217 [USACO1.5]回文质数 Prime Palindromes 题解(来源:洛古)

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

  6. P1217 [USACO1.5]回文质数 Prime Palindromes——回文质数性质、打表

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

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

    暴力输出5~1e8的回文质数 #include <bits/stdc++.h> using namespace std; int cnt; bool isprim(int x) //10^ ...

  8. 【素数】P1217 [USACO1.5]回文质数 Prime Palindromes

    https://www.luogu.com.cn/problem/P1217 考点:素数.回文.二分.打表 题意: 找出5到1e8的回文素数. 解法: 直接暴力遍历1亿次必定超时,可以用打表法... ...

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

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

最新文章

  1. 41.和为s的两个数字 VS 和为s的连续正数序列
  2. 漏洞分析技术专家聚会——博文视点OpenParty第二期
  3. 【面试招聘】春招面经集合 | 腾讯/字节/华为/东芝/360/Boss
  4. java天气app_MVP+RxJava2+Retrofit2 实况天气app
  5. PowerDesigner使用技巧
  6. MySQL笔记-简单配置主从库
  7. Visual Studio的语法着色终于调得赏心悦目
  8. 豪情-2014年年终总结
  9. flashback database操作步骤
  10. 人类迁徙计划 (feat.译者补完篇)
  11. Win10系统下激活系统和office2013教程
  12. 低版本浏览器(chrome小于40 firefox小于50 ie小于9)会提示升级信息
  13. 算法竞赛入门学习(篇一)
  14. Linux网络配置(配置网络IP地址)
  15. 管理经济学【五】之 生产要素投入的决策分析
  16. php爬取flash的交互数据库,flash用php连接数据库的代码
  17. Android编译Skia库
  18. 上海浦东新区计算机学校排名2015,最新2015浦东新区初中排名 分为四个档次
  19. 用于微小目标检测的上下文扩展和特征细化网络
  20. 培训班出身的程序员,和科班程序员有什么区别?

热门文章

  1. 元素 float:right 后右对齐换行原因
  2. Javascript网页滚动方法
  3. eclipse常用快捷键排行
  4. Latent semantic analysis note(LSA)
  5. UA PHYS515A 电磁理论V 电磁波与辐射4 反射与折射
  6. 统计决策理论1 统计问题与统计决策
  7. 软件测试人员需要了解关于自动化的什么(译)
  8. jquery点击页面其他位置隐藏div
  9. Linux上安装php
  10. 补充知识:三元运算和逻辑运算