【洛谷P3383】【模板】线性筛素数
来源:互联网 发布:网络通信有哪些方式 编辑:程序博客网 时间:2024/06/03 19:43
【模板】线性筛素数
Description
如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)
Input:
第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。
接下来M行每行包含一个不小于1且不大于N的整数,即询问该数是否为质数。
Output
输出包含M行,每行为Yes或No,即依次为每一个询问的结果。
Sample Input
100 5
2
3
4
91
97
Sample Output
Yes
Yes
No
No
Yes
HINT
时空限制:500ms 128M
数据规模:
对于30%的数据:N<=10000,M<=10000
对于100%的数据:N<=10000000,M<=100000
样例说明:
N=100,说明接下来的询问数均不大于100且不小于1。
所以2、3、97为质数,4、91非质数。
故依次输出Yes、Yes、No、No、Yes。
如题,没啥好说的。记得加读入优化。
#include<cstdio>bool no_prime[10005000];int p[10005000];int n,T,tot=0;inline int read(){ char c=getchar();int x=0; while (c<'0' || c>'9') c=getchar(); while (c>='0' && c<='9') x=x*10+c-'0',c=getchar(); return x;}void get_p(){ for (int i=0;i<=n;i++) no_prime[i]=false; no_prime[0]=no_prime[1]=true; for (int i=2;i<=n;i++) { if (!no_prime[i]) p[tot++]=i; for (int j=0;j<tot && p[j]*i<=n;j++) { no_prime[i*p[j]]=true; if (i%p[j] == 0) break; } }}int main(){ n=read();T=read(); get_p(); while(T--) { int a;bool f=true; a=read(); if (!no_prime[a]) printf("Yes\n"); else if (f) printf("No\n"); } return 0;}
阅读全文
0 0
- 洛谷 P3383 【模板】线性筛素数
- 洛谷 P3383【模板】线性筛素数
- 洛谷 P3383 【模板】线性筛素数
- 【洛谷P3383】【模板】线性筛素数
- [模板][洛谷P3383]线性筛素数
- P3383 【模板】线性筛素数
- [洛谷 P3383] 线性筛素数
- C++ P3383 【模板】线性筛素数
- 洛谷 P3383 筛素数 欧拉筛素数模板
- 洛谷 P3383 【模板】线性筛素数(https://www.luogu.org/problem/show?pid=3383)
- 洛谷P3383 线性筛素数(线性筛)
- 线性筛——欧拉筛 C++程序实现 洛谷 模板题 P3383
- 线性筛(欧拉筛法)简介(洛谷P3383)
- 线性筛素数模板
- 线性素数筛模板
- 【模板】线性筛素数
- [模板]线性筛素数
- 【模板】线性筛素数
- Android开发:Error:android-apt plugin is incompatible with the Android Gradle plugin. Please use 'anno
- Oracle数据库丢失控制文件的恢复四则
- 内网与外网的区别
- dubbo标签报错问题
- Jacob安装
- 【洛谷P3383】【模板】线性筛素数
- MSP430平台下实现AT24C02的读写操作
- 微信公众平台开发接口配置URL index.php和token,
- plsql 调用存储过程
- 机器学习(一)----k-近邻算法
- 理解RESTful架构
- laravel 5.3 GROUP BY 问题
- C++算法之二叉树
- 在同个输出如何同时输出a和b