Six
시간 제한2초메모리 제한512 MB
N은 서로 다른 소인수를 최대 여섯 개 가진다. 새로 쓰는 약수가 이미 쓴 수 중 많아야 하나와 1보다 큰 공약수를 가질 때, 만들 수 있는 약수 나열의 개수를 1e9+7로 나눈 나머지를 구한다.
문제
엘리는 정수 의 성질을 조사한다. 지금까지 알아낸 사실은 의 서로 다른 소인수가 여섯 개를 넘지 않는다는 것이다. 소수는 1보다 큰 자연수 중에서 1과 자기 자신 말고는 양의 약수가 없는 수다.
엘리는 빈 목록에서 시작해 의 약수 중 1보다 큰 수를 하나씩 적는다. 같은 약수를 여러 번 적어도 된다. 새로운 수를 적을 때는 이미 적어 둔 수 가운데 그 수와 1보다 큰 공약수를 갖는 것이 많아야 하나가 되도록 한다.
예를 들어 이면 (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)도 올바르지 않다.
엘리가 적을 수 있는 올바른 목록이 몇 개인지 세어라. 두 목록은 길이가 다르거나 같은 자리에 다른 수가 놓이면 서로 다른 것으로 센다. 엘리는 수를 적어도 하나는 적으므로 빈 목록은 세지 않는다.
입력
첫째 줄에 정수 이 주어진다.
출력
엘리가 적을 수 있는 서로 다른 목록의 개수를 로 나눈 나머지를 한 줄에 출력한다.
제한
- 의 서로 다른 소인수는 여섯 개 이하다.
힌트
일 때 올바른 목록 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)}
일 때 목록의 개수는 14104757650이고, 이를 로 나눈 나머지는 104757552다.