小x的质数(线性O(n)筛素数)
小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 6
样例输出1
5
样例输入2
10 282 491 31 178 645 856 227 367 267 487 474 697 219 468 582 792 315 612 249 307
样例输出2
97 78 92 65 102 98 114 90 133 29
样例输入3
10 20513 96703 15236 86198 23185 78205 40687 48854 42390 95450 63915 76000 36793 92543 35347 53901 44188 76922 82177 90900
样例输出3
24413 23001 17784 2669 16785 3833 17712 6028 10442 2734
code
1 #include<cstdio> 2 #include<cmath> 3 4 const int MAXN = 10000100; 5 6 bool lk[MAXN],noprime[MAXN]; 7 int prime[MAXN]; 8 int sum[MAXN]; 9 10 int read() { 11 int x = 0,f = 1;char ch = getchar(); 12 for (; ch<'0'||ch>'9'; ch = getchar()) 13 if (ch=='-') f = -1; 14 for (; ch>='0'&&ch<='9'; ch = getchar()) 15 x = x*10+ch-'0'; 16 return x*f; 17 } 18 19 int main() { 20 21 int tot = 0; 22 23 for (int i=2; i<=10000000; i++) { 24 if (!noprime[i]) { 25 prime[++tot]=i; 26 lk[i] = true; 27 for (int j=1; j<=tot && i*prime[j]<=10000000; j++) { 28 noprime[i*prime[j]] = true; 29 lk[i*prime[j]] = true; 30 } 31 } 32 else { 33 for (int j=1; j<=tot&&i*prime[j]<=10000000; j++) { 34 noprime[i*prime[j]] = true; 35 if(i % prime[j] == 0) break ; 36 } 37 } 38 } 39 40 for (int i=1; i<=10000000; ++i) { 41 if (lk[i]) sum[i] = sum[i-1]+1; 42 else sum[i] = sum[i-1]; 43 } 44 45 int L,R,q = read(); 46 while (q--) { 47 L = read();R = read(); 48 printf("%d\n",sum[R]-sum[L-1]); 49 } 50 51 return 0; 52 }
转载于:https://www.cnblogs.com/mjtcn/p/7588708.html
小x的质数(线性O(n)筛素数)相关推荐
- 质数 AcWing 868. 筛质数 线性筛
质数 AcWing 868. 筛质数 原题链接 AcWing 868. 筛质数 算法标签 数学知识 质数 线性筛法筛法求素数 思路 线性筛,保证每个合数只被最小素因子筛掉 (1)当i%primes[j ...
- c语言 快速筛质数,快速筛素数(埃式筛+线性筛+Miller_Rabin算法)
在CF上做到一道核心是需要筛出1~n所有素数的题目,然后刚好又没学过,就学习了快速筛素数的办法,基础的n根号n的算法这里大家每个人都知道吧QAQ,就不讲了,好像还是C语言上机说过的题目. 首先给大家介 ...
- F. 1.小W 的质数(prime)[欧拉筛再理解]
Description 小X是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感.小X认为,质数是一切自然数起源的地方. 在小X的认知里,质数是除了本身和1以外,没有其他因数的数字.但 ...
- 筛选质数,埃氏筛和欧拉筛(线性筛)
求len之内的所有的素数 除了比较常用的开根号的求法,还有两种更好的方法,埃氏筛和线性筛.其中埃氏筛更好理解,而线性筛(欧拉筛)不好理解但是更快. 埃氏筛 #include <bits/stdc ...
- [数学/质数筛] 素数筛法
Date:2019/10/16?? 其实现在都快1点了,算是16号,啊?? 今天讲了素数的筛法 其实,在很小的数据范围内,不同的算法复杂度是差不多的,但是,如果处理几个数据,算法的作用就没有发挥出来 ...
- 质数||素数(分解质因数、筛素数、质数定理)
质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,否则称为合数. 规定1既不是质数也不是合数 分解质因数:把一个合数分解成若干个因数乘积的形式 分解质因数(也称分解 ...
- [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉
本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉 题目大意 给定n,m,求在1到n!内与m!互质的 ...
- 普及组模板——线性筛素数
题目:[模板]线性筛素数(洛谷_3383) #include<iostream> #include<cstdio> #include<algorithm> #inc ...
- P3383 【模板】线性筛素数
https://www.luogu.com.cn/problem/P3383 //线性筛法 /* P3383 [模板]线性筛素数 https://www.luogu.com.cn/problem/P3 ...
最新文章
- TS中的感叹号和问号的用法
- docker-compose command 执行多条指令
- 怎么写ERP实施方案?
- 《乌合之众》读书笔记(part2)--打动群体心灵的,是传奇中的英雄,而绝非现实中的英雄本身
- CF1481F-AB Tree【构造,背包】
- 谁是赢家_赢家的真正作品是股东
- jQuery插件FontSizer实现自定义动态调整网页文字大小
- outlook域用户名怎么填_家谱制作软件怎么做成电子版
- 如何产生好的词向量?
- eb8000软件怎样上传_威纶通触摸屏 如何上传程序 到电脑需要怎么处理
- STM32配合火焰传感器的火灾报警
- vs2022 E1696 无法打开 源 文件 “string.h“
- CVP0.M24、CVP0.M28、CVZ0.S08插装式单向阀
- python 发邮件 带附件
- 如何判断一棵二叉树是完全二叉树
- 脚本化HTTP——AJax
- 软考 - 10 智能家居管理系统
- Apache AzKaban 环境搭建与入门使用
- Win7-64 重装 Anaconda3
- AIX 挂载NFS错误nfsmnthelp: 1831-019之解决
热门文章
- 深度学习框架的评估与比较
- Android安全开发之安全使用HTTPS
- 从今天开始,学习Webpack,减少对脚手架的依赖(下)
- mysql 错误记录
- mysql对执行结果进行html格式的输出?输出html格式?
- java.util.concurrent BlockingQueue详解
- Class.forName解析以及使用
- switchhosts(本地域名解析)小工具使用
- Linux 系统 rpm安装ipvsadm.src.rpm
- 15分钟学会MyEclipse导出jar文件再装换成exe可执行文件