Наименьшее общее кратное
시간 제한2초메모리 제한1024 MB
최소공배수가 n인 k개 원소의 중복집합 개수를 10^9+7로 나눈 나머지로 구한다.
문제
Вася --- юный программист. Он уже умеет решать задачи на графы, структуры данных, комбинаторику и динамическое программирование. Но вот с теорией чисел он еще не знаком. Поэтому он стал посещать лекции по теории чисел. На одном из первых занятий он узнал, что такое наименьшее общее кратное.
Набором чисел назовем множество, в котором элементы могут повторяться.
Наименьшее общее кратное набора целых положительных чисел --- минимальное положительное целое число, которое делится на каждый элемент набора .
После каждого занятия преподаватель задает домашнее задание по пройденным темам. Вот и в этот раз он задал непростое задание:
Заданы числа $n$ и $k$, требуется определить количество таких наборов из $k$ элементов, наименьшее общее кратное которых равно $n$
Например, если и , то подходящие наборы это: , , , , . Поэтому ответ будет равен 5. Заметим, что наборы, отличающиеся только порядком элементов, считаются одинаковыми.
Вася очень хорошо усвоил лекцию, а также он очень смышленный мальчик, поэтому он уже решил задачу. Но он не уверен в том, что все сделал правильно. Вася просит вас помочь проверить его программу: решите эту же задачу и найдите ответы на некоторые тесты. Так как ответ может быть очень большим, Вася решил, что ему достаточно буде знать остаток от деления ответа на .
입력
В первой строке входного файла через пробел заданы числа () и ().
출력
В выходной файл требуется вывести одно число: ответ по модулю .