잠들기 전 읽기 2
시간 제한2초메모리 제한512 MB
[start,end] 구간에서 시작하는 모든 bess 수열 주기를 찾아, 첫 원소가 그 주기의 최솟값인 경우만 오름차순으로 출력한다. 수열 계산 중 2,000,000을 넘는 값이 나오면 그 시작점은 제외한다.
문제
양의 정수 의 약수 가운데 자신을 제외한 값을 모두 더한 수를 이라고 하자. 예를 들어 이고, 이어서 , , , , 이다. 은 0으로 정한다.
어떤 양의 정수 에서 시작해 , , 순으로 값을 따라가다가 다시 가 나오면, 로 돌아오기 직전까지 나온 값을 순서대로 늘어놓은 것을 의 사슬이라고 부른다. 이므로 6의 사슬은 원소가 하나인 6이다. 이고 이므로 220의 사슬은 원소가 둘인 220 284이다. 원소가 더 많은 사슬도 있다.
두 정수 start와 end가 주어진다. 첫 원소가 start 이상 end 이하인 사슬을 모두 찾아 출력한다. 단, 첫 원소가 그 사슬에서 가장 작은 원소인 사슬만 출력한다. 사슬의 다른 원소 중에 첫 원소보다 작은 값이 하나라도 있으면 그 사슬은 출력하지 않는다.
값을 따라가다가 2,000,000보다 큰 값이 나오면 그 시작점은 사슬을 이루지 않는 것으로 본다. 중간에 나오는 값이 end보다 커도 된다. 원소가 50개를 넘는 사슬은 없다.
입력
첫째 줄에 두 정수 start와 end가 공백 하나로 구분되어 주어진다. 이다.
출력
찾은 사슬을 첫 원소가 작은 것부터 차례대로 한 줄에 하나씩 출력한다. 각 줄에는 사슬의 원소를 순서대로 공백 하나로 구분해 출력한다. 조건을 만족하는 사슬이 하나도 없으면 아무것도 출력하지 않는다.