나누고 지배하라 2.0
시간 제한1초메모리 제한1024 MB
서로 다른 값으로 이루어진 배열에서 각 질의의 구간 [l, r]에 있는 수 중 d의 약수이거나 d의 배수인 것의 개수를 구합니다.
문제
사슈카는 나눗셈 연산을 매우 좋아한다. 그래서 가을 정보 올림피아드에 나눗셈만 사용하는 문제를 내기로 했다. 문제에는 그가 아끼는 양의 정수 수열 과 개의 질의가 주어진다. 번째 질의는 양의 정수 , , 로 표현된다. 각 질의에 대해 수열에서 위치가 부터 까지인 원소 중 의 약수이거나 의 배수인 수의 개수를 구한다. 시간이 흐르고 있고 여러분은 1등을 원하므로, 이 질의에 답하는 프로그램 divide.cpp를 작성하라.
입력
첫 줄에 정수 과 가 주어진다. 둘째 줄에 개의 정수 이 주어진다. 이어지는 개의 줄에는 각각 , , 가 주어진다.
출력
한 줄에 개의 정수를 출력한다. 번째 정수는 번째 질의의 답이다.
제한
, , . 모든 에 대해 이다.