Codeforces 385C Bear and Prime Numbers(数论)
来源:互联网 发布:2016网络大神新书排行 编辑:程序博客网 时间:2024/06/08 06:46
Recently, the bear started studying data structures and faced the following problem.
You are given a sequence of integers x1, x2, ..., xn of length n and m queries, each of them is characterized by two integers li, ri. Let's introduce f(p) to represent the number of such indexes k, that xk is divisible by p. The answer to the query li, ri is the sum: , where S(li, ri) is a set of prime numbers from segment [li, ri] (both borders are included in the segment).
Help the bear cope with the problem.
The first line contains integer n (1 ≤ n ≤ 106). The second line contains n integers x1, x2, ..., xn (2 ≤ xi ≤ 107). The numbers are not necessarily distinct.
The third line contains integer m (1 ≤ m ≤ 50000). Each of the following m lines contains a pair of space-separated integers, li and ri(2 ≤ li ≤ ri ≤ 2·109) — the numbers that characterize the current query.
Print m integers — the answers to the queries on the order the queries appear in the input.
65 5 7 10 14 1532 113 124 4
970
72 3 5 7 11 4 828 102 123
07
Consider the first sample. Overall, the first sample has 3 queries.
- The first query l = 2, r = 11 comes. You need to count f(2) + f(3) + f(5) + f(7) + f(11) = 2 + 1 + 4 + 2 + 0 = 9.
- The second query comes l = 3, r = 12. You need to count f(3) + f(5) + f(7) + f(11) = 1 + 4 + 2 + 0 = 7.
- The third query comes l = 4, r = 4. As this interval has no prime numbers, then the sum equals 0.
#include<bits/stdc++.h>using namespace std;typedef long long LL;const int MAX_N = 1e7+9;int vec[MAX_N];int res[MAX_N];bool prime[MAX_N];int main(){ int N,M,T; memset(prime,true,sizeof(prime)); prime[0] = prime[1] = false; for(int i=2;i<MAX_N;i++) { if(prime[i]) { for(int j=2*i;j<MAX_N;j+=i) { prime[j] = false; } } } while(cin>>N) { memset(vec,0,sizeof(vec)); memset(res,0,sizeof(res)); int temp; for(int i=0;i<N;i++) { scanf("%d",&temp); res[temp]++; } for(int i=2;i<MAX_N;i++) { if(prime[i]) { vec[i] += res[i]; for(int j=2*i;j<MAX_N;j+=i) { vec[i] += res[j]; } } } for(int i=2;i<MAX_N;i++) { vec[i] += vec[i-1]; } int l,r; cin>>M; for(int i=0;i<M;i++) { scanf("%d%d",&l,&r); if(r>=MAX_N) r= MAX_N-1; if(l>=MAX_N) l= MAX_N-1; printf("%d\n",vec[r]-vec[l-1]); } } return 0;}
- Codeforces 385C Bear and Prime Numbers(数论)
- Codeforces 385C Bear and Prime Numbers(数论)
- Codeforces 385 C. Bear and Prime Numbers
- CodeForces 385C Bear and Prime Numbers
- Codeforces 385C Bear and Prime Numbers
- Codeforces 385 C Bear and Prime Numbers
- codeforces 385C Bear and Prime Numbers
- CodeForces 385C Bear and Prime Numbers
- 【数论】CF 385C Bear and Prime Numbers
- Codeforces 385C Bear and Prime Numbers [素数筛法]
- Codeforces 385C Bear and Prime Numbers 筛法
- Codeforces 385C Bear and Prime Numbers【巧妙用埃筛】
- codeforces-385C Bear and Prime Numbers(素数筛选法+维护前缀和)
- codeforces 680C Bear and Prime 100(数论)
- Codeforces Round #226 (Div. 2) C. Bear and Prime Numbers
- Codeforces Round #226 (Div. 2)C. Bear and Prime Numbers
- Codeforces Round #226 (Div. 2)--C. Bear and Prime Numbers
- codeforces 385C C. Bear and Prime Numbers(线性筛素数)
- 赚积分
- 【矩阵快速幂+二分】Matrix Power Series POJ
- LeetCode刷题(C++)——Course Schedule II
- HDU 5934 && 2016CCPC杭州 B: Bomb(Trajan强连通)
- 【文献阅读】ResNet-Deep Residual Learning for Image Recognition--CVPR--2016
- Codeforces 385C Bear and Prime Numbers(数论)
- Hash表查找成功和查找不成功的平均查找长度
- Django 重置密码 发送邮件
- centos7配置php运行环境(Apache、mysql)
- C语言之获取32字节随机数的字符串
- 防雪崩利器:熔断器 Hystrix 的原理与使用
- Django显示时间的一些问题
- 灰色预测模型
- 防火墙分类