특이한 소수
시간 제한1초메모리 제한128 MB
주어진 소수 최대 10개의 곱으로만 이루어진 수 가운데 [X, Y] 구간에 속하는 것을 모두 출력하거나, 없으면 none을 출력한다.
문제
어떤 나라에서는 부패가 학문의 영역까지 스며들었다. 몇몇 수학자들이 특정 소수(prime)를 다른 소수보다 우대하도록 압력을 받았다는 소문이 돈다. 이들은 몇 개의 "금지된" 소수를 아예 사용하지 않고, 오직 허용된 소수들만으로 수를 만든다고 한다.
이러한 제한된 세계를 재현해 보자. 허용된 소수들의 집합이 주어질 때, 어떤 양의 정수가 그 소수들의 거듭제곱의 곱으로만 표현될 수 있고 다른 어떤 소수도 인수로 갖지 않으면, 그 수를 구성 가능(constructible) 하다고 하자. 즉, 그 수의 모든 소인수가 주어진 집합에 속해야 한다.
예를 들어 허용된 소수가 이면 는 구성 가능하지만 는 그렇지 않다.
수 은 어떤 소인수도 필요로 하지 않으므로 항상 구성 가능하다.
입력
입력은 여러 개의 시나리오로 이루어진다.
각 시나리오는 세 줄로 주어진다.
- 첫째 줄에는 허용된 소수의 개수 () 이 주어진다.
- 둘째 줄에는 개의 소수 이 공백으로 구분되어 주어진다. 이들은 모두 소수임이 보장된다.
- 셋째 줄에는 두 정수 와 () 가 공백으로 구분되어 주어진다.
마지막 시나리오 다음에는 하나만 있는 줄이 오며, 이 줄은 처리하지 않는다.
출력
각 시나리오마다 한 줄에, 닫힌 구간 안에서 주어진 소수들로 구성 가능한 모든 정수를 출력한다.
해당하는 수들을 중복 없이 오름차순으로, 공백 없이 쉼표(,) 하나로 구분하여 출력한다. 안에 구성 가능한 수가 하나도 없으면 대신 none 을 출력한다.