洛谷P1865 A % B Problem(求区间内素数个数:埃筛+前缀和)

本篇博客主要介绍如何解决区间内质数个数的问题,采用埃拉托斯特尼筛法筛选素数,并结合前缀和技巧进行高效计算。针对不同数据范围给出解决方案,适用于区间在[1, m]内的n次询问,其中m最大可达1000000。" 54315446,5691899,Oracle存储过程与DBMS_OUTPUT使用详解,"['数据库管理', 'SQL', 'Oracle开发', '数据库编程', '存储过程']
摘要由CSDN通过智能技术生成

题目背景

题目名称是吸引你点进来的

实际上该题还是很水的

题目描述

区间质数个数

输入格式

一行两个整数 询问次数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

 本题只取决于m的大小,因为最多只要判断[1,m]这个区间内素数的个数即可,所以可以用素数的筛选法(埃氏筛选法:因为所有素数的倍数都不是素数,所以只要将素数的倍数依次筛掉就行了)

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,p[1000001],vis[1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值