아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

특이한 소수

시간 제한1초메모리 제한128 MB

요약
주어진 소수 최대 10개의 곱으로만 이루어진 수 가운데 [X, Y] 구간에 속하는 것을 모두 출력하거나, 없으면 none을 출력한다.
난이도

보통10점 중 5점

유형
백트래킹, 수학, 정수론, 정렬
정답자
아직 제출이 없습니다

문제

어떤 나라에서는 부패가 학문의 영역까지 스며들었다. 몇몇 수학자들이 특정 소수(prime)를 다른 소수보다 우대하도록 압력을 받았다는 소문이 돈다. 이들은 몇 개의 "금지된" 소수를 아예 사용하지 않고, 오직 허용된 소수들만으로 수를 만든다고 한다.

이러한 제한된 세계를 재현해 보자. 허용된 소수들의 집합이 주어질 때, 어떤 양의 정수가 그 소수들의 거듭제곱의 곱으로만 표현될 수 있고 다른 어떤 소수도 인수로 갖지 않으면, 그 수를 구성 가능(constructible) 하다고 하자. 즉, 그 수의 모든 소인수가 주어진 집합에 속해야 한다.

예를 들어 허용된 소수가 {2,3}\{2, 3\} 이면 1,2,3,4,6,8,9,12,…1, 2, 3, 4, 6, 8, 9, 12, \dots 는 구성 가능하지만 5,7,10,14,…5, 7, 10, 14, \dots 는 그렇지 않다.

수 11 은 어떤 소인수도 필요로 하지 않으므로 항상 구성 가능하다.

입력

입력은 여러 개의 시나리오로 이루어진다.

각 시나리오는 세 줄로 주어진다.

  • 첫째 줄에는 허용된 소수의 개수 NN (1≤N≤101 \le N \le 10) 이 주어진다.
  • 둘째 줄에는 NN 개의 소수 2≤P1<P2<⋯<PN<100002 \le P_1 < P_2 < \dots < P_N < 10000 이 공백으로 구분되어 주어진다. 이들은 모두 소수임이 보장된다.
  • 셋째 줄에는 두 정수 XX 와 YY (1≤X≤Y<2311 \le X \le Y < 2^{31}) 가 공백으로 구분되어 주어진다.

마지막 시나리오 다음에는 00 하나만 있는 줄이 오며, 이 줄은 처리하지 않는다.

출력

각 시나리오마다 한 줄에, 닫힌 구간 [X,Y][X, Y] 안에서 주어진 소수들로 구성 가능한 모든 정수를 출력한다.

해당하는 수들을 중복 없이 오름차순으로, 공백 없이 쉼표(,) 하나로 구분하여 출력한다. [X,Y][X, Y] 안에 구성 가능한 수가 하나도 없으면 대신 none 을 출력한다.

예제3

  1. 예제 1

    입력
    1
    3
    1 12
    2
    2 3
    10 20
    3
    2 3 5
    20 30
    1
    17
    20 30
    0
    
    예상 출력
    1,3,9
    12,16,18
    20,24,25,27,30
    none
    
  2. 예제 2

    입력
    1
    2
    1 100
    0
    
    예상 출력
    1,2,4,8,16,32,64
    
  3. 예제 3

    입력
    2
    2 5
    1 50
    0
    
    예상 출력
    1,2,4,5,8,10,16,20,25,32,40,50