잠들기 전 읽기 2

[start,end] 구간에서 시작하는 모든 bess 수열 주기를 찾아, 첫 원소가 그 주기의 최솟값인 경우만 오름차순으로 출력한다. 수열 계산 중 2,000,000을 넘는 값이 나오면 그 시작점은 제외한다.

보통6정수론구현수학시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

양의 정수 nn의 약수 가운데 nn 자신을 제외한 값을 모두 더한 수를 bess(n)\mathrm{bess}(n)이라고 하자. 예를 들어 bess(12)=1+2+3+4+6=16\mathrm{bess}(12) = 1 + 2 + 3 + 4 + 6 = 16이고, 이어서 bess(16)=1+2+4+8=15\mathrm{bess}(16) = 1 + 2 + 4 + 8 = 15, bess(15)=1+3+5=9\mathrm{bess}(15) = 1 + 3 + 5 = 9, bess(9)=1+3=4\mathrm{bess}(9) = 1 + 3 = 4, bess(4)=1+2=3\mathrm{bess}(4) = 1 + 2 = 3, bess(3)=1\mathrm{bess}(3) = 1이다. bess(1)\mathrm{bess}(1)은 0으로 정한다.

어떤 양의 정수 xx에서 시작해 xx, bess(x)\mathrm{bess}(x), bess(bess(x))\mathrm{bess}(\mathrm{bess}(x)) 순으로 값을 따라가다가 다시 xx가 나오면, xx로 돌아오기 직전까지 나온 값을 순서대로 늘어놓은 것을 xx의 사슬이라고 부른다. bess(6)=1+2+3=6\mathrm{bess}(6) = 1 + 2 + 3 = 6이므로 6의 사슬은 원소가 하나인 6이다. bess(220)=284\mathrm{bess}(220) = 284이고 bess(284)=220\mathrm{bess}(284) = 220이므로 220의 사슬은 원소가 둘인 220 284이다. 원소가 더 많은 사슬도 있다.

두 정수 start와 end가 주어진다. 첫 원소가 start 이상 end 이하인 사슬을 모두 찾아 출력한다. 단, 첫 원소가 그 사슬에서 가장 작은 원소인 사슬만 출력한다. 사슬의 다른 원소 중에 첫 원소보다 작은 값이 하나라도 있으면 그 사슬은 출력하지 않는다.

값을 따라가다가 2,000,000보다 큰 값이 나오면 그 시작점은 사슬을 이루지 않는 것으로 본다. 중간에 나오는 값이 end보다 커도 된다. 원소가 50개를 넘는 사슬은 없다.

입력

첫째 줄에 두 정수 start와 end가 공백 하나로 구분되어 주어진다. 1startend1,000,0001 \le \text{start} \le \text{end} \le 1{,}000{,}000이다.

출력

찾은 사슬을 첫 원소가 작은 것부터 차례대로 한 줄에 하나씩 출력한다. 각 줄에는 사슬의 원소를 순서대로 공백 하나로 구분해 출력한다. 조건을 만족하는 사슬이 하나도 없으면 아무것도 출력하지 않는다.