막대 만들기
시간 제한1초메모리 제한1024 MB
각 목표 길이 L_i를 시작값 A_j와 2 이상의 배수 k로 이루어진 순서 있는 곱셈 분해로 나타내는 방법의 수를 센다.
문제
길고 얇은 막대를 만드는 과정은 다음과 같습니다.
- 기본으로 사용할 막대를 고릅니다. 사용 가능한 막대의 길이는 입니다.
- 원하는 길이가 될 때까지 번 이상 막대를 늘립니다. 기계에 이상의 양의 정수 를 설정해서 막대를 넣으면, 길이가 였던 막대가 길이 의 막대가 됩니다.
주어진 개의 길이 각각에 대해 길이가 인 막대를 만드는 방법의 수를 출력하세요. 두 방법이 서로 다르다는 것은 처음 선택한 막대가 다르거나, 막대를 늘리는 과정에서 입력한 정수 의 수열이 서로 다르다는 것을 의미합니다.
입력
첫 줄에 막대의 개수 이 주어집니다.
둘째 줄에 개의 서로 다른 정수 이 공백으로 구분되어 주어집니다.
셋째 줄에 만들고자 하는 막대 길이의 개수 가 주어집니다.
넷째 줄에 개의 정수 가 공백으로 구분되어 주어집니다.
출력
첫 줄에 개의 수를 공백으로 구분해 출력합니다. 번째 수는 길이가 인 막대를 만드는 방법의 수입니다. 가능한 모든 입력에 대해 답이 을 넘지 않음을 증명할 수 있습니다.