博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #226 (Div. 2)C. Bear and Prime Numbers
阅读量:5250 次
发布时间:2019-06-14

本文共 1388 字,大约阅读时间需要 4 分钟。

/*    可以在筛选质数的同时,算出每组数据中能被各个质数整除的个数,    然后算出[0,s]的个数 [l,r] 的个数即为[0,r]的个数减去[0,l]个数。 */#include 
#include
#include
#define maxn 10000010using namespace std;int prime[maxn];int isprime[maxn];int x[maxn];void make_prime(){ memset(isprime, 0, sizeof(isprime)); for(int i = 2;i < maxn;i++){ if(!isprime[i]){ //prime[i] += x[i]; for(int j = i;j < maxn;j += i){ isprime[j] = 1; prime[i] += x[j]; } } }// for(int i = 0;i < 100;i++)// printf("%d ",prime[i]); for(int i = 2;i < maxn;i++) prime[i] += prime[i-1]; }int main(){ int n,m; while(~scanf("%d",&n)){ int temp = 0; memset(x, 0, sizeof(x)); memset(prime, 0, sizeof(prime)); for(int i = 0;i < n;i++){ scanf("%d",&temp); x[temp]++; }// for(int i = 0;i < 25;i++)// printf("%d ",x[i]);// printf("\n"); make_prime(); int l,r; scanf("%d",&m); while(m--){ scanf("%d%d",&l,&r);//由于x1, x2, ..., xn (2 ≤ xi ≤ 10^7) if(l > maxn) l = maxn-1;//这里的边界一定要注意,WA了好几次才发现 if(r > maxn) r = maxn-1; printf("%d\n",prime[r]-prime[l-1]); } } return 0;}

 

转载于:https://www.cnblogs.com/Roly/p/3601418.html

你可能感兴趣的文章
S5PV210根文件系统的制作(一)
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>
数据清洗
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>
C++循环单链表删除连续相邻重复值
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
ASP.NET使网页弹出窗口不再困难
查看>>
Leetcode Balanced Binary Tree
查看>>
Leetcode 92. Reverse Linked List II
查看>>
windown快速安装xgboost
查看>>
Linux上安装Libssh2
查看>>
九.python面向对象(双下方法内置方法)
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
LeetCode(17) - Letter Combinations of a Phone Number
查看>>
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>