4495 - 제곱수의 차

Time Limit: 1s Memory Limit: 128MB

Submissions: 958 Solved: 124
Description

자연수 n을 두 제곱수의 차로 나타내려고 한다.

n = a2 - b2을 만족하는 음이 아닌 정수 a, b를 구해보자.

Input

Line 1: 입력의 갯수 N (0 ≤ N ≤ 100000)

Line 2~N+1: 자연수 n (1 ≤ n ≤ 1000000)

Output

Line 1~N: n=a2 - b2 를 만족하는 음이 아닌 정수 a, b 순서쌍들 중 a가 가장 작은 경우를 출력한다. 만약 두 제곱수의 차로 나타내는 것이 불가능하다면 IMPOSSIBLE을 출력한다.

Sample Input
5
6
24
29
25
21
Sample Output
IMPOSSIBLE
5 1
15 14
5 0
5 2
Hint

24=52-12=72-52=... 이고, a=5, b=1일 때 a가 가장 작다.

 

* withcs는 출력 결과만 가지고 채점하기 때문에 입력과 출력을 반복해도 상관없으며, 아직 배열을 배우지 않았더라도 풀 수 있다. 다음은 입력 횟수 N회 동안 a, b를 입력받고 a+b를 출력하는 코드다.

#include <stdio.h>
void main(){
    int N;
scanf("%d",&N); for(int i=0;i<N;i++){ int a,b;
scanf("%d %d",&a,&b); printf("%d\n",a+b); } }