- 제곱근이 정수인지 판별하기 위한 2가지 방법이 있다.
방법 1) 제곱하여 정수값인지 확인하기
방법 2) int형으로 강제 변환해서 비교하기sqrt()
와pow(), powl(), powf()
는<cmath>
에 있다.
(반환형이 double / long / float이냐에 따라 다름!)
#include <string> #include <vector> #include <cmath> using namespace std; long long solution(long long n) { long long sq = (int)sqrt(n) == sqrt(n) ? sqrt(n) : -1; return sq > 0 ? powl(sq+1,2) : -1; }