새로운 수학
시간 제한1초메모리 제한1024 MB
10진수에서 올림을 버리는 무올림 곱셈으로 a를 제곱한 값이 N이 되는 가장 작은 양의 정수 a를 구하고, 없으면 -1을 출력한다.
문제
"이런!" 찰스가 소리쳤다. "이 멍청한 올림 자막이 내 엔진에서 작동하지 않아! 방금 어떤 수의 제곱을 계산하려 했는데, 결과가 틀렸어. 올림이 전부 사라졌어."
"흠," 에이다가 생각에 잠겨 말했다. "올림 없는 산술이라니! 엔진에 보이는 결과를 보고 네가 원래 입력한 값이 무엇이었는지 알아낼 수 있을지 궁금하네."
로 표기하는 올림 없는 덧셈은 (10진법에서) 올림을 무시한다는 점만 빼면 일반 덧셈과 같다. 따라서 은 가 아니라 이다.
로 표기하는 올림 없는 곱셈은 학교에서 배우는 곱셈 알고리즘처럼 열별로 수행하되, 중간 덧셈을 올림 없는 덧셈으로 계산한다. 더 형식적으로, 의 자릿수를 라 하자. 여기서 은 최하위 자릿수이다. 마찬가지로 의 자릿수를 라 하자. 의 자릿수는 다음 식으로 주어진다. [ c_k = \left( a_0 b_k \oplus a_1 b_{k-1} \oplus \cdots \oplus a_{k-1} b_1 \oplus a_k b_0 \right) \bmod{10}, ] 여기서 이거나 이면 또는 는 0으로 본다. 예를 들어 는 이고, 는 이며, 는 이다.
이 주어질 때, 을 만족하는 가장 작은 양의 정수 를 구하라.
입력
입력은 한 줄로 주어지며, 자릿수가 최대 자리이고 앞에 0이 없는 양의 정수 이 들어 있다.
출력
을 만족하는 가장 작은 양의 정수 를 한 줄에 출력한다. 그러한 가 없으면 대신 '-1'을 출력한다.