만드는 중입니다

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

제곱수

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

요약
주어진 수열 a에 대해 인접한 두 원소의 곱 a_i t_i a_{i+1} t_{i+1}이 완全 제곱수가 되도록 양의 정수 t를 정하고, 모든 t_i의 곱의 최솟값을 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
정수론, 그리디, 그래프
정답자
아직 제출이 없습니다

문제

Father Study는 수학을 매우 좋아한다.

정수 수열 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다. Father Study는 다음 조건을 만족하는 정수 수열 t1,t2,…,tnt_1, t_2, \ldots, t_n을 구하려 한다.

  • 모든 i(1≤i≤n)i (1 \le i \le n)에 대해 ti>0t_i > 0이다.
  • 모든 i(1≤i<n)i (1 \le i < n)에 대해 ai×ti×ai+1×ti+1a_i \times t_i \times a_{i+1} \times t_{i+1}이 제곱수이다. (수학에서 제곱수는 어떤 정수의 제곱, 즉 어떤 정수에 자기 자신을 곱한 수이다.)
  • ∏i=1nti\prod_{i=1}^{n}{t_i}가 최소가 되어야 한다.

∏i=1nti\prod_{i=1}^{n}{t_i}의 최솟값을 구한다.

입력

첫째 줄에 정수 nn (1≤n≤1000001 \le n \le 100000)이 주어진다.

둘째 줄에 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤10000001 \le a_i \le 1000000)이 공백으로 구분되어 주어진다.

출력

∏i=1nti\prod_{i=1}^{n}{t_i}의 최솟값을 10000000071000000007로 나눈 나머지를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    3
    2 3 6
    
    예상 출력
    6