N은 서로 다른 소인수를 최대 여섯 개 가진다. 새로 쓰는 약수가 이미 쓴 수 중 많아야 하나와 1보다 큰 공약수를 가질 때, 만들 수 있는 약수 나열의 개수를 1e9+7로 나눈 나머지를 구한다.
어려움8조합론수학정수론동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한512 MB엘리는 정수 N의 성질을 조사한다. 지금까지 알아낸 사실은 N의 서로 다른 소인수가 여섯 개를 넘지 않는다는 것이다. 소수는 1보다 큰 자연수 중에서 1과 자기 자신 말고는 양의 약수가 없는 수다.
엘리는 빈 목록에서 시작해 N의 약수 중 1보다 큰 수를 하나씩 적는다. 같은 약수를 여러 번 적어도 된다. 새로운 수를 적을 때는 이미 적어 둔 수 가운데 그 수와 1보다 큰 공약수를 갖는 것이 많아야 하나가 되도록 한다.
예를 들어 N=12156144이면 (42), (616, 6, 91, 23), (91, 616, 6, 23), (66, 7), (66, 7, 7, 23, 299, 66), (143, 13, 66), (42, 12156144)은 모두 엘리가 만들 수 있는 목록이다. 5는 12156144의 약수가 아니므로 (5, 11)은 올바르지 않고, 143은 13과도 66과도 1보다 큰 공약수를 가지므로 (66, 13, 143)도 올바르지 않다.
엘리가 적을 수 있는 올바른 목록이 몇 개인지 세어라. 두 목록은 길이가 다르거나 같은 자리에 다른 수가 놓이면 서로 다른 것으로 센다. 엘리는 수를 적어도 하나는 적으므로 빈 목록은 세지 않는다.
첫째 줄에 정수 N이 주어진다.
엘리가 적을 수 있는 서로 다른 목록의 개수를 1000000007로 나눈 나머지를 한 줄에 출력한다.
N=6일 때 올바른 목록 28개는 다음과 같다.
{(2), (2, 2), (2, 2, 3), (2, 2, 3, 3), (2, 3), (2, 3, 2), (2, 3, 2, 3), (2, 3, 3), (2, 3, 3, 2), (2, 6), (2, 6, 3), (3), (3, 2), (3, 2, 2), (3, 2, 2, 3), (3, 2, 3), (3, 2, 3, 2), (3, 3), (3, 3, 2), (3, 3, 2, 2), (3, 6), (3, 6, 2), (6), (6, 2), (6, 2, 3), (6, 3), (6, 3, 2), (6, 6)}
N=12156144일 때 목록의 개수는 14104757650이고, 이를 1000000007로 나눈 나머지는 104757552다.