만드는 중입니다

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

제곱수 찾기

시간 제한6초메모리 제한512 MB

요약
주어진 이차식 p(x)=ax^2+bx+c에 대해 p(0)부터 p(n-1)까지의 곱을 나누는 가장 큰 제곱수를 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 9점

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

문제

프랭크는 제곱수를 좋아한다. 제곱수는 어떤 정수를 자기 자신과 곱한 수이다. 그는 이차 다항식도 좋아하며, 가장 좋아하는 다항식은 p(x)=a⋅x2+b⋅x+cp(x) = a \cdot x^2 + b \cdot x + c이다.

오늘 아침 프랭크는 이 다항식에 0부터 시작하는 연속된 정수 nn개를 대입하고, 얻은 값을 모두 곱했다.

곱한 결과가 제곱수이면 그의 하루는 완벽하겠지만, 그렇지 않을 수도 있다. 그래서 그는 곱한 결과를 나누는 가장 큰 제곱수를 구해 달라고 부탁한다.

입력

입력의 첫 줄에 정수 a,b,c,na, b, c, n이 주어진다 (1≤a,b,c,n≤600 0001 \le a,b,c,n \le 600\,000).

출력

∏i=0n−1p(i)\prod\limits_{i=0}^{n-1}{p(i)}의 약수 중 가장 큰 제곱수를 구한다. 이 값은 매우 클 수 있으므로, 109+710^9+7로 나눈 나머지를 정수 하나로 출력한다.

힌트

첫 번째 예시에서 곱은 1⋅3⋅7⋅13⋅21⋅31⋅43⋅57⋅73⋅91=2893684641939=38826291⋅27321\cdot 3\cdot 7\cdot 13\cdot 21\cdot 31\cdot 43\cdot 57\cdot 73\cdot 91 = 2893684641939 = 38826291 \cdot 273^2와 같다.

예제2

  1. 예제 1

    입력
    1 1 1 10
    
    예상 출력
    74529
    
  2. 예제 2

    입력
    1 2 1 10
    
    예상 출력
    189347824