codeforces 385 c

Description

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.

Input

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 andri(2 ≤ li ≤ ri ≤ 2·109) — the numbers that characterize the current query.

Output

Print m integers — the answers to the queries on the order the queries appear in the input.

Sample Input

Input

65 5 7 10 14 1532 113 124 4

Output

970

Input

72 3 5 7 11 4 828 102 123

Output

07

Hint

Consider the first sample. Overall, the first sample has 3 queries.

  1. 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.
  2. 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.
  3. The third query comes l = 4, r = 4. As this interval has no prime numbers, then the sum equals 0.

查找一个区间内的,一系列数中,包含素数的个数。基本思路是:把这一系列数字中,到最大的数字Max之前是数字包含是素数的个数统计出来,然后用统计的个数区间的右端值减掉左端值减一,sum[right]-sum[left-1].因为求解的素数是包括最左端的这一个的,所以左端值应该减掉一。

比如说 对这样一个序列:5 6 7 ,则sum[1]=0;sum[2]=1;sum[3]=1;sum[4]=1;sum[5]=1;sum[6]=3;sum[7]=4; 若le=2,ri=7;ans=sum[7]-sum[1]=4;

时间: 2024-10-17 04:40:25

codeforces 385 c的相关文章

CodeForces 385 D.Bear and Floodlight 状压DP

枚举灯的所有可能状态(亮或者不亮)(1<<20)最多可能的情况有1048576种 dp[i]表示 i 状态时灯所能照射到的最远距离(i 的二进制中如果第j位为0,则表示第j个灯不亮,否则就是亮) 当i&(1<< j)时代表第i个状态灯j不亮,此时可由状态i转移到状态 i ^ ( 1 << j) 即dp[(i^(1<<j))]=max(dp[(i^(1<<j))],get(dp[i],j)) get是从dp[i]的位置开始第j个灯所能照亮的

Codeforces 385 D Bear and Floodlight

主题链接~~> 做题情绪:时候最后有点蛋疼了,处理点的坐标处理晕了.so~比赛完清醒了一下就AC了. 解题思路: 状态压缩DP ,仅仅有 20 个点.假设安排灯的时候仅仅有顺序不同的问题.全然能够用状态压缩去递推出来,仅仅是处理点的坐标的时候非常麻烦,理清思路就好了. 状态方程: dp [ S | (1 << i ) ]  = max( dp[ S |( 1 << i ) ] , dp[ S ] + W )  , 在状态 S 的情况下再加入 i 点(S 中先前不含 i 点),

Codeforces 385 C Bear and Prime Numbers

题目链接~~> 做题感悟:这题属于想法题,比赛时直接做的 D 题,但是处理坐标处理的头晕眼花的结果到最后也没AC. 解题思路: 因为查询的时候只考虑素数,so~我们只考虑素数就可以,这就需要筛素数,我们可以在筛素数的同时把某个素数出现的倍数加上,输入的时候只要记录某个数的个数就可以了. 代码: #include<iostream> #include<sstream> #include<map> #include<cmath> #include<f

Codeforces Round #385(div 2)

A =w= B QwQ C 题意:n个点m条边的无向图,其中有k个特殊点,你在这张图上尽可能多的连边,要求k个特殊点两两不连通,问最多能连多少边 分析:并查集 对原图做一次并查集,找出特殊点所在集合中节点数量最大的那个,将剩余没有特殊点的集合并到那个集合中去. 计算答案时候先根据集合的点数算出最大边数,再减去初始边数就是最多加的边数 D 题意:好像是个交互题,题目太长,不想看 分析:留坑 E 题意:Hongcow想去一家店买一些卡片,于是他和店主完了个游戏.每个回合,Hongcow选择做下面两件

Codeforces Round #385 //肝了一发终于上分

敲完三题挂机一小时.....  也没懂DE什么意思  rank600上了一波分... A. Hongcow Learns the Cyclic Shift 给一个字符串,每次可以把最后一个字符拿到开头  问能形成多少种.. 暴力模拟  set去重... B. Hongcow Solves A Puzzle 判断矩形即可... C. Hongcow Builds A Nation 并查集求最大块  然后把未标记的块放进最大块里  最后的连边数-最初的   为我们添加的最多可能 D. Hongcow

Codeforces Round #279 (Div. 2) ABCD

Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name     A Team Olympiad standard input/output 1 s, 256 MB  x2377 B Queue standard input/output 2 s, 256 MB  x1250 C Hacking Cypher standard input/output 1 s, 256 MB  x740 D Chocolate standard input/

codeforces:Prefix Sums

题目大意: 给出一个函数P,P接受一个数组A作为参数,并返回一个新的数组B,且B.length = A.length + 1,B[i] = SUM(A[0], ..., A[i]).有一个无穷数组序列A[0], A[1], ... 满足A[i]=P(A[i-1]),其中i为任意自然数.对于输入k和A[0],求一个最小的下标t,使得A[t]中包含不小于k的数值. 其中A[0].length <= 2e5, k <= 1e18,且A[0]中至少有两个正整数. 数学向的题目.本来以为是个找规律的题目

codeforces:Helga Hufflepuff&#39;s Cup

题目大意:有一个包含n个顶点的无向无环连通图G,图中每个顶点都允许有一个值type,type的范围是1~m.有一个特殊值k,若一个顶点被赋值为k,则所有与之相邻的顶点只能被赋小于k的值.最多有x个顶点被赋值为k.求问有多少种不同的赋值方案. 这是一道树形DP的题目.由于是无环无向连通图,因此可以任选一个顶点R作为根结点,从而构造一颗树TREE.为每个顶点N维护一个属性maybe[3][x+1].其中maybe[0][i]表示当N被赋小于k的值时,N及其所有后代结点总共出现i个被赋值为k的结点的总

codeforces:855D Rowena Ravenclaw&#39;s Diadem分析和实现

题目大意: 提供n个对象,分别编号为1,...,n.每个对象都可能是某个编号小于自己的对象的特例或是成分.认为某个对象的特例的特例依旧是该对象的特例,即特例关系传递,同样一个对象的成分的成分依旧是该对象的成分.但是还需要注意一个对象的成分是该对象的所有特例的成分.每个对象都不可能是自己的特例或成分.要求解答之后的q个谜题,每个谜题提问两个对象是否是特例关系或成分关系. 输入级别:n,q<1e5 花了一个晚上才想到思路解了题目... 首先我们要先解决一个简单的问题,我将这道题目这样描述,对于一株多