题目描述

区间质数个数

输入输出格式

输入格式:

一行两个整数 询问次数n,范围m

接下来n行,每行两个整数 l,r 表示区间

输出格式:

对于每次询问输出个数 t,如l或r∉[1,m]输出 Crossing the line

输入输出样例

输入样例#1: 复制

2 5
1 3
2 6

输出样例#1: 复制

2
Crossing the line

说明

【数据范围和约定】

对于20%的数据 1<=n<=10 1<=m<=10

对于100%的数据 1<=n<=1000 1<=m<=1000000 -10^9<=l<=r<=10^9 1<=t<=1000000

【分析】:不用前缀和就TLE阿QAQ

【代码】:

#include <bits/stdc++.h>using namespace std;
int const MAX = 505;
int const INF = 0x3fffffff;
int n, m;
int a[1000005];
int isP(int n)
{if(n == 1) return 0;for(int i=2; i<=sqrt(n); i++){if(n % i == 0){return 0;}}return 1;
}int main()
{cin >> n >> m;a[1] = 0;int l, r, ans = 0;for(int i=2; i<=m; i++){if( i%2!=0 || i==2){a[i] = a[i-1] + isP(i);}else{a[i] = a[i-1];}}//a[i]=isP(i)+a[i-1]是a[i]=a[i]前所有素数的个数,如果i是素数 a[i]要加一,否则不加(判素数的函数回的是1或0) while(n--){ans = 0;cin >> l >> r;if(l<1||r>m){printf("Crossing the line\n");}else{printf("%d\n",a[r] - a[l-1]);}}
}

暴力筛

#include <bits/stdc++.h>using namespace std;
int const MAX = 1000005;
int const INF = 0x3fffffff;
int n, m, l, r;
int a[MAX];
int sum[MAX];
int main()
{cin >> n >> m;a[1] = 1;for(int i=2; i<=sqrt(m); i++){if(!a[i]){for(int j=i+i; j<=m; j+=i){a[j] = 1;}}}for(int i=1; i<=m; i++){sum[i] = sum[i-1] + (a[i]^1);//异或 :a[i] = 0 ——> +1 / a[i] =  ——> +0
    }for(int i=1; i<=n; i++){cin >> l >> r;if(l<1 || r>m) puts("Crossing the line");else{printf("%d\n",sum[r]-sum[l-1]);}}
}

埃筛

转载于:https://www.cnblogs.com/Roni-i/p/8569815.html

洛谷 P1865 A % B Problem[筛素数/前缀和思想/区间质数个数]相关推荐

  1. 洛谷——P1001 A+B Problem

    洛谷--P1001 A+B Problem 题目描述 输入两个整数 a, ba,b,输出它们的和(|a|,|b| \le {10}^9∣a∣,∣b∣≤109). 注意 Pascal 使用 intege ...

  2. python输出一个简单的田字格、用函数简化其代码_Solution Method: 洛谷 P1001 A+B Problem(Python 3 基本输入输出方法及代码简化)...

    本文从 洛谷 P1001 A+B Problem 为例,讲一讲 Python 3 在算法竞赛中的一些基本输入输出方法,以及一些利用 Python 3 特性的代码简化 以下为本文将涉及的内容: inpu ...

  3. 洛谷P1001 A+B Problem

    题目链接:[洛谷]P1001 A+B Problem ·前言 第一篇博客(emmm-),选择了接触Code的第一道题<A + B Problem>. A+B Problem 作为语法基础第 ...

  4. 洛谷P1832 A+B Problem(再升级)

    放题解 题目传送门 放代码 #include<bits/stdc++.h> using namespace std;int n,a[1005];//n为被分解数 a数组用于存储素数 lon ...

  5. 洛谷 1303——A*B Problem

    题目描述 求两数的积. 输入输出格式 输入格式: 两个数 输出格式: 积 输入输出样例 输入样例#1: 1 2 输出样例#1: 2 注意:在相乘时不用判断进位,在后面及循环进位. 代码如下: var ...

  6. 【洛谷P1303 A*B Problem】

    题目描述 求两数的积. 输入输出格式 输入格式: 两行,两个数. 输出格式: 积 输入输出样例 输入样例#1: 1 2 输出样例#1: 2 说明 每个数字不超过10^2000,需用高精 emm,显然本 ...

  7. P1865 A % B Problem (素数筛法,前缀和)

    题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Cros ...

  8. [数学/质数筛] 素数筛法

    Date:2019/10/16?? 其实现在都快1点了,算是16号,啊?? 今天讲了素数的筛法 其实,在很小的数据范围内,不同的算法复杂度是差不多的,但是,如果处理几个数据,算法的作用就没有发挥出来 ...

  9. 洛谷--橙色百道DP总结

    最近刷完了洛谷橙色DP大约一百道,算是发现了一些套路,就部分题目做一些总结. 大概分为三类 第一类,九大背包及其衍生 第二类,经典DP模型,如LCS,LIS等 第三类,实际问题背景的普通,环形,树上D ...

最新文章

  1. 为什么数学家、统计学家和机器学习专家会用不同方式解决问题?
  2. C语言经典算法 1-10
  3. JS代码实例:实现随机加载不同的CSS样式
  4. android 类的设计,Android App的类响应式设计
  5. Integer转BigDecimal
  6. Python 异常处理
  7. fastDFS文件系统安装
  8. 数控dda法直线插补程序c语言,DDA法直线插补
  9. Matlab计算轮廓内切圆
  10. python 时间模块判断上午还是下午_Python的时间模块小结(转自:不懂真人)
  11. 小论文之旅(2)——introduction与related work
  12. [win7 百度网盘] 登录安全验证显示空白页
  13. 为什么SEM竞价推广效果越来越差?
  14. 计算机网络-字符编码的由来(为什么会有乱码,ASCII、Unicode、GBK和UTF-8字符编码区别)
  15. 三氟磺隆(CAS 82097-50-5)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. OrientDB部署
  17. 数据名称:中国社会追踪调查数据CGSS区县码(最全版本)数据年限:2010-2015年数据简介:搭配CGSS数据使用,可精准匹配至区县层面,对于从事微观层面研究具有重要价值。
  18. flutter flame基本结构
  19. eve-ng导入华为路由器镜像
  20. XenDesktop 之powershell 使用

热门文章

  1. 我很高兴找了一张可以说明:为什么软件开发那么困难的图
  2. 如何更高效的管理原生微服务应用
  3. Call to undefined function mysql_connect()
  4. JSON.parse()出错解决
  5. 分布式系统的Raft算法
  6. 从零开始写一个武侠冒险游戏-3-地图生成
  7. python运维开发之socket网络编程01
  8. 网络嗅探软件全接触(1)
  9. IOS面试经常被问到的问题
  10. Python操作mysql数据库查询操作时提示“unread-result-found”