사탕 나누기

구간 [A,B]의 각 X에 대해 균등 분할 수는 X의 약수 개수와 같으므로, 약수가 가장 많은 X와 그 개수를 구해 모두 출력한다.

보통6정수론수학구현완전 탐색아직 제출이 없습니다시간 제한2초메모리 제한64 MB

문제

이비차는 친구를 모두 큰 파티에 초대했다. 파티에 사탕이 빠지면 분위기가 살지 않는다.

사탕이 모자랄까 걱정한 이비차는 AA개보다 적게 사지는 않으려고 한다. 가진 돈으로는 최대 BB개까지 살 수 있다. 친구가 모두 오지는 않으니 이비차는 파티에 몇 명이 올지 모른다. 그래서 사 온 사탕을 똑같이 나누는 방법이 가장 많아지는 개수를 사려고 한다. 똑같이 나눈다는 것은 나누어 받는 친구가 모두 같은 개수를 받고 사 온 사탕이 하나도 남지 않는다는 뜻이다. 예를 들어 사탕 66개를 사면 똑같이 나누는 방법이 1+1+1+1+1+11+1+1+1+1+1, 2+2+22+2+2, 3+33+3, 66의 네 가지다.

이비차가 사탕을 몇 개 사야 하는지 알려 주는 프로그램을 작성하시오.

입력

첫째 줄에 자연수 AABB가 공백 하나로 구분되어 주어진다. (1AB20000001 \le A \le B \le 2\,000\,000)

출력

사 온 사탕을 똑같이 나누는 방법의 최대 개수를 MM이라고 하자. 구간 [A,B][A, B]에 속하는 정수 XX 중에서 사탕 XX개를 똑같이 나누는 방법이 정확히 MM가지인 것을 모두 모은 집합을 SS라 하고, SS의 원소 개수를 NN이라고 하자.

첫째 줄에 MMNN을 공백 하나로 구분해 출력한다. 이어지는 NN개의 줄에 SS의 원소를 한 줄에 하나씩 작은 것부터 차례로 출력한다.