만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

최소공배수

시간 제한2초메모리 제한1024 MB

요약
n과 k가 주어질 때, 최소공배수가 정확히 n인 크기 k의 중복집합 개수를 10^9+7로 나눈 나머지를 구합니다.
난이도

보통10점 중 6점

유형
정수론, 조합론, 수학
정답자
아직 제출이 없습니다

문제

바샤는 어린 프로그래머이다. 그는 그래프, 자료 구조, 조합론, 동적 계획법 문제를 이미 풀 줄 안다. 하지만 정수론은 아직 접해 보지 못했다. 그래서 정수론 강의를 듣기 시작했고, 첫 강의 중 하나에서 최소공배수가 무엇인지 배웠다.

다중집합은 원소가 중복될 수 있는 집합이다.

양의 정수로 이루어진 다중집합 SS의 최소공배수는 SS의 모든 원소로 나누어떨어지는 가장 작은 양의 정수이다.

강의가 끝날 때마다 선생님은 배운 내용과 관련된 숙제를 낸다. 이번 숙제는 어려웠다.

정수 $n$과 $k$가 주어졌을 때, 원소가 $k$개이고 최소공배수가 $n$과 같은 다중집합의 개수를 구하라

예를 들어 n=6n = 6, k=2k = 2이면 조건을 만족하는 다중집합은 {1,6}\{1, 6\}, {2,3}\{2, 3\}, {2,6}\{2, 6\}, {3,6}\{3, 6\}, {6,6}\{6, 6\}이다. 따라서 답은 5이다. 원소의 순서만 다른 다중집합은 같은 것으로 본다.

바샤는 강의를 잘 이해했고 똑똑하기도 해서 이미 문제를 풀었다. 다만 모든 과정이 정확했는지는 확신하지 못한다. 바샤는 같은 문제를 직접 풀어서 몇 가지 테스트의 답을 확인해 달라고 부탁한다. 답이 매우 클 수 있으므로 바샤에게는 답을 109+710^9+7로 나눈 나머지만 있으면 충분하다.

입력

입력 파일의 첫 줄에 공백으로 구분된 정수 nn (1≤n≤10121 \le n \le 10^{12})과 kk (1≤k≤1001 \le k \le 100)가 주어진다.

출력

답을 109+710^9+7로 나눈 나머지를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    6 2
    
    예상 출력
    5
    
  2. 예제 2

    입력
    239 3
    
    예상 출력
    3