제곱수 덱 2
시간 제한2초메모리 제한512 MB
1부터 N까지 적힌 카드를 합칠 때 두 카드의 합이 완전제곱수가 되도록 하고, 기록된 수들의 곱을 최소로 만든 값을 998244353으로 나눈 나머지를 구합니다.
문제
이상 이하의 정수가 순서대로 적힌 장의 카드가 있다. 각 카드는 처음에 자기 자신만으로 이루어진 덱이다.
와파스는 덱을 합칠 때마다 종이에 수를 적는다. 처음에는 종이에 이 적혀 있다.
와파스는 다음 규칙에 따라 두 덱을 골라 하나의 덱으로 합친다.
- 두 덱을 합치기 전, 각 덱에서 카드를 한 장씩 뽑는다.
- 뽑은 두 카드에 적힌 수를 , 라고 할 때, 가 반드시 제곱수여야 한다. 이러한 카드를 뽑는 것이 불가능하다면 이 두 덱은 합칠 수 없다.
- 두 덱을 하나로 합친 뒤에는 종이에 를 적는다.
장의 카드를 하나의 덱으로 합친 뒤, 종이에 적힌 개의 수를 모두 곱한 값 를 구한다.
와파스는 의 값을 최소로 하여 덱을 모두 합치고 싶어 한다. 와파스를 위해 의 최솟값을 구해 보자.
입력
양의 정수 이 주어진다.
출력
의 최솟값을 으로 나눈 나머지를 출력한다.
장의 카드를 하나의 덱으로 합칠 수 없다면 -1을 출력한다.