Logo
(追記) (追記ここまで)

24537번 - 약수 계산

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB2641087847.273%

문제

경아는 $N$(1ドル \le N \le 3 \cdot 10^5 $)개의 수를 이용해서 최대 공약수를 계산하는 놀이를 하고 있다. 경아가 가지고 있는 수는 모두 1ドル$ 이상 10ドル^6$ 이하의 정수이다.

경아가 하는 놀이의 진행 방식은 다음과 같다.

  • 임의의 수 $K$($ 1 \le K \le 10^6$)를 선택한다.
  • 가지고 있는 수 중에서 일부를 골라 고른 수의 최대 공약수가 $K$가 되게끔 만든다. 이 때, 수는 최대한 많이 골라야 한다. 수를 하나만 고른 경우 최대공약수는 그 수와 같은 걸로 생각한다.

경아는 이 놀이를 한참 하다가 피곤해졌다. 경아가 선택한 $Q$($ 1 \le Q \le 3 \cdot 10^5 $)개의 수가 주어졌을 때 대신 답을 계산해주는 프로그램을 작성해보자.

입력

첫째 줄에 경아가 가지고 있는 수의 개수 $N$ ($ 1 \le N \le 3 \cdot 10^5 $)이 주어진다.

둘째 줄에 경아가 가지고 있는 $N$개의 수 목록이 공백으로 구분되어 주어진다. 각 수는 1ドル$ 이상 10ドル^6$ 이하의 정수이다.

셋째 줄에 경아가 선택한 수의 개수 $Q$ ($ 1 \le Q \le 3 \cdot 10^5$)가 주어진다.

넷째 줄부터 $Q$줄에 걸쳐 경아가 선택한 수 $K$가 한 줄에 하나씩 주어진다. 각 수는 1ドル$ 이상 10ドル^6$ 이하의 정수이다.

출력

$Q$줄에 걸쳐, 가지고 있는 수에서 최대공약수가 $K$가 되게끔 가능한 한 많은 수를 골랐을 때 고를 수 있는 수의 개수를 출력한다. 만약 어떻게 골라도 최대 공약수가 $K$가 되게 만들 수 없다면 대신 $-1$을 출력한다.

제한

예제 입력 1

5
2 6 10 3 8
5
1
2
3
4
6

예제 출력 1

5
4
2
-1
1

힌트

출처

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /