小x的质数

题目描述

小 X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感。小 X 认为,质数是一切自然数起源的地方。

在小 X 的认知里,质数是除了本身和 11 以外,没有其他因数的数字。

但由于小 X 对质数的热爱超乎寻常,所以小 X 同样喜欢那些虽然不是质数,但却是由两个质数相乘得来的数。

于是,我们定义,一个数是小 X 喜欢的数,当且仅当其是一个质数,或是两个质数的乘积。

而现在,小 X 想要知道,在 LL 到 RR 之间,有多少数是他喜欢的数呢?

输入格式

第一行输入一个正整数 QQ,表示询问的组数。

接下来 QQ 行。包含两个正整数 LL 和 RR。保证 L \le RL≤R。

输出格式

输出 QQ 行,每行一个整数,表示小 X 喜欢的数的个数。

数据范围与约定

样例

样例解释 1

66 以内的质数有 2,3,52,3,5,而 4=2 * 2,6 = 2 * 34=2∗2,6=2∗3。因此 2,3,4,5,62,3,4,5,6 都是小 X 喜 欢的数,而 1 不是。

样例输入1

  1. 1
  2. 1 6

样例输出1

  1. 5

样例输入2

  1. 10
  2. 282 491
  3. 31 178
  4. 645 856
  5. 227 367
  6. 267 487
  7. 474 697
  8. 219 468
  9. 582 792
  10. 315 612
  11. 249 307

样例输出2

  1. 97
  2. 78
  3. 92
  4. 65
  5. 102
  6. 98
  7. 114
  8. 90
  9. 133
  10. 29

样例输入3

  1. 10
  2. 20513 96703
  3. 15236 86198
  4. 23185 78205
  5. 40687 48854
  6. 42390 95450
  7. 63915 76000
  8. 36793 92543
  9. 35347 53901
  10. 44188 76922
  11. 82177 90900

样例输出3

  1. 24413
  2. 23001
  3. 17784
  4. 2669
  5. 16785
  6. 3833
  7. 17712
  8. 6028
  9. 10442
  10. 2734

code

  1. #include<cstdio>
  2. #include<cmath>
  3.  
  4. const int MAXN = ;
  5.  
  6. bool lk[MAXN],noprime[MAXN];
  7. int prime[MAXN];
  8. int sum[MAXN];
  9.  
  10. int read() {
  11. int x = ,f = ;char ch = getchar();
  12. for (; ch<''||ch>''; ch = getchar())
  13. if (ch=='-') f = -;
  14. for (; ch>=''&&ch<=''; ch = getchar())
  15. x = x*+ch-'';
  16. return x*f;
  17. }
  18.  
  19. int main() {
  20.  
  21. int tot = ;
  22.  
  23. for (int i=; i<=; i++) {
  24. if (!noprime[i]) {
  25. prime[++tot]=i;
  26. lk[i] = true;
  27. for (int j=; j<=tot && i*prime[j]<=; j++) {
  28. noprime[i*prime[j]] = true;
  29. lk[i*prime[j]] = true;
  30. }
  31. }
  32. else {
  33. for (int j=; j<=tot&&i*prime[j]<=; j++) {
  34. noprime[i*prime[j]] = true;
  35. if(i % prime[j] == ) break ;
  36. }
  37. }
  38. }
  39.  
  40. for (int i=; i<=; ++i) {
  41. if (lk[i]) sum[i] = sum[i-]+;
  42. else sum[i] = sum[i-];
  43. }
  44.  
  45. int L,R,q = read();
  46. while (q--) {
  47. L = read();R = read();
  48. printf("%d\n",sum[R]-sum[L-]);
  49. }
  50.  
  51. return ;
  52. }

小x的质数(线性O(n)筛素数)的更多相关文章

  1. [Luogu]A%BProblem——线性筛素数与前缀和

    题目描述 题目背景 题目名称是吸引你点进来的[你怎么知道的] 实际上该题还是很水的[有种不祥的预感..] 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m接下来n行, ...

  2. 常州模拟赛d2t1 小X的质数

    题目背景 小 X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的 情感.小 X 认为,质数是一切自然数起源的地方. 题目描述 在小 X 的认知里,质数是除了本身和 1 以外,没有其他因 ...

  3. C++ 线性筛素数

    今天要写一篇亲民的博客了,尽力帮助一下那些不会线性筛素数或者突然忘记线性筛素数的大佬. 众所周知,一个素数的倍数肯定不是素数(废话).所以我们可以找到一个方法,普通的筛法(其实不算筛,普通的是判断一个 ...

  4. 洛谷P3383 【模板】线性筛素数

    P3383 [模板]线性筛素数 256通过 579提交 题目提供者HansBug 标签 难度普及- 提交  讨论  题解 最新讨论 Too many or Too few lines 样例解释有问题 ...

  5. 洛谷 P3383 【模板】线性筛素数

    P3383 [模板]线性筛素数 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范 ...

  6. 计蒜客NOIP模拟赛4 D1T1 小X的质数

    小 X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感.小 X 认为,质数是一切自然数起源的地方. 在小 X 的认知里,质数是除了本身和 1以外,没有其他因数的数字. 但由于小 X ...

  7. 欧拉筛法模板and 洛谷 P3383 【模板】线性筛素数(包括清北的一些方法)

    题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入格式 第一行包含两个正整数N.M,分别表示查询的范围和查询的个数. 接下来M行每行包含一个不小于1 ...

  8. Goldbach's Conjecture POJ - 2262 线性欧拉筛水题 哥德巴赫猜想

    题意 哥德巴赫猜想:任一大于2的数都可以分为两个质数之和 给一个n 分成两个质数之和 线行筛打表即可 可以拿一个数组当桶标记一下a[i]  i这个数是不是素数  在线性筛后面加个装桶循环即可 #inc ...

  9. 洛谷 P3383 【模板】线性筛素数-线性筛素数(欧拉筛素数)O(n)基础题贴个板子备忘

    P3383 [模板]线性筛素数 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范 ...

随机推荐

  1. 微信android手机中点击大图片会自动放大图片

    自己使用的是微信Android客户端,使用img标签的src属性将图片设置好了以后,在微信中调试,点击图片竟然放大,自己没写放大图片的方法,也没有调用wx.previewImage()方法,最后查找, ...

  2. jQuery的一些备忘

    操作元素的样式 主要包括以下几种方式: $("#msg").css("background"); //返回元素的背景颜色 $("#msg") ...

  3. 多线程(Thread、线程创建、线程池)

      第1章 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程 ...

  4. new() 与new

    一般写的时候,new对象都要加()

  5. Servlet中的初始化参数、上下文参数、以及@Resource资源注入

    配置初始化参数.上下文参数.以及使用@Resource注解进行资源注入,目的是为了降低代码的耦合度.当项目需求进行变更的时候,不需要反复更改源代码,只需更改web.xml文件即可. 一:Servlet ...

  6. 个人博客 attack.cf

    新开了个emlog搭的博客 地址:attack.cf 主要分享一下网络安全方面的东西和一些精品资源 欢迎来访

  7. HBase数据模型(2)

    HBase数据模型(1) HBase数据模型(2) 1.0 HBase的版本version,是一个用长整型表示的.由Rowkey.Column(列族和列).Version组合在一起称为HBase中的一 ...

  8. Java多线程常见问题

    1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和 ...

  9. ZOJ 3469 Food Delivery (区间DP,经典)

    题意: 在x轴上有一家外卖餐馆,有n个顾客站在x轴上不同坐标上且叫了外卖,每个人的脾气不同,每1分钟没有收到外卖就会增加Fi点愤怒值,而外卖小哥的车是有速度的v-1/分钟,问怎样的送餐次序会让所有顾客 ...

  10. 【exFat】利用命令提示符在windows 7 及 windows server 2008 r2 中将卷(分区)格式化为exFAT

    步骤 运行cmd.exe: 查看磁盘信息.输入diskpart并回车: 选择磁盘.输入select disk 0(“0”代表要选择的磁盘号)并回车: 查看所选硬盘的分区.输入list partitio ...