N>1인 정수가 주어진다. 정수 d>1에 대해, dk∣N이면서 dk+1∤N을 만족하는 양의 정수 k가 존재할 때 "d는 N의 중복도가 k인 약수"라고 한다. 예를 들어 N=48=24⋅3의 경우 2는 중복도가 4인 약수, 3은 중복도가 1인 약수, 4는 중복도가 2인 약수, 6은 중복도가 1인 약수이다.
d가 N의 중복도가 k인 약수이면서 N의 모든 약수 중 k보다 큰 중복도를 가지는 약수가 없을 때, d를 N의 신성한 약수라고 한다. 다시 말해 신성한 약수는 N의 모든 약수가 가지는 중복도의 최댓값을 달성하는 약수이다. 예를 들어 48의 신성한 약수는 2 (중복도 4) 하나뿐이고, 6의 신성한 약수는 2, 3, 6 (각각 중복도 1)이다.
N의 모든 약수가 가지는 중복도의 최댓값 k와 N의 신성한 약수의 개수를 구하라.
N은 다소 특이한 방식으로 주어진다. 첫 번째 줄에는 정수 n (1≤n≤600)이 주어진다. 두 번째 줄에는 n개의 정수 a1,a2,…,an (2≤ai≤1018)이 공백 하나로 구분되어 주어진다. 이들은 N=a1⋅a2⋅⋯⋅an을 뜻한다.
두 줄을 출력한다. 첫 번째 줄에는 N의 어떤 약수 d>1이 dk∣N을 만족하도록 하는 가장 큰 정수 k를 출력한다. 두 번째 줄에는 N의 신성한 약수의 개수, 즉 중복도가 k인 약수의 개수를 출력한다. 이 값은 매우 커질 수 있으므로 정확한 정수로 출력한다.