최소공배수
시간 제한2초메모리 제한1024 MB
n과 k가 주어질 때, 최소공배수가 정확히 n인 크기 k의 중복집합 개수를 10^9+7로 나눈 나머지를 구합니다.
문제
바샤는 어린 프로그래머이다. 그는 그래프, 자료 구조, 조합론, 동적 계획법 문제를 이미 풀 줄 안다. 하지만 정수론은 아직 접해 보지 못했다. 그래서 정수론 강의를 듣기 시작했고, 첫 강의 중 하나에서 최소공배수가 무엇인지 배웠다.
다중집합은 원소가 중복될 수 있는 집합이다.
양의 정수로 이루어진 다중집합 의 최소공배수는 의 모든 원소로 나누어떨어지는 가장 작은 양의 정수이다.
강의가 끝날 때마다 선생님은 배운 내용과 관련된 숙제를 낸다. 이번 숙제는 어려웠다.
정수 $n$과 $k$가 주어졌을 때, 원소가 $k$개이고 최소공배수가 $n$과 같은 다중집합의 개수를 구하라
예를 들어 , 이면 조건을 만족하는 다중집합은 , , , , 이다. 따라서 답은 5이다. 원소의 순서만 다른 다중집합은 같은 것으로 본다.
바샤는 강의를 잘 이해했고 똑똑하기도 해서 이미 문제를 풀었다. 다만 모든 과정이 정확했는지는 확신하지 못한다. 바샤는 같은 문제를 직접 풀어서 몇 가지 테스트의 답을 확인해 달라고 부탁한다. 답이 매우 클 수 있으므로 바샤에게는 답을 로 나눈 나머지만 있으면 충분하다.
입력
입력 파일의 첫 줄에 공백으로 구분된 정수 ()과 ()가 주어진다.
출력
답을 로 나눈 나머지를 한 줄에 출력한다.