본문 바로가기

백준/C++

[Baekjoon/C++] 34027번 - 제곱 수?

[백준] Baekjoon Online Judge

문제로 이동

 

문제

어떤 양의 정수의 제곱인 수를 완전제곱수라고 부른다. 양의 정수 이 주어지면 이 완전제곱수인지 판별하자.

 

입력

첫째 줄에 테스트 케이스의 개수 가 주어진다.

둘째 줄부터 개의 줄에 걸쳐 양의 정수 이 한 줄에 하나씩 주어진다.

 

출력

개의 줄에 걸쳐 각 테스트 케이스마다 이 완전제곱수라면 1, 그렇지 않으면 0을 출력한다.

 

제한

 


풀이

#include <iostream>
#include <cmath>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);

	int T;
	cin >> T;

	while (T--) {
		int N;
		cin >> N;

		int n = sqrt(N);

		cout << (int)(n * n == N) << '\n';
	}

	return 0;
}

 int는 소수점 아래의 숫자를 버리기 때문에 완전제곱수가 아닌 수의 (제곱근 * 제곱근)은 기존의 수 N과 값이 달라진다.