어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
● 1 ≤ n ≤ 1,000,000
144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.
976은 제곱수가 아닙니다. 따라서 2를 return합니다.
function solution(n) {
if (Number.isInteger(Math.sqrt(n))) {
return 1;
} else {
return 2;
}
}
이 문제 역시 '제곱수'라는 것에 막혀서 오랜 시간 삽질을 하였다.
오랜 시간 삽질 끝에 자바스크립트에 sqrt()라는 제곱수를 판별할 수 있는 것이 있었다. 사실 정확히는 제곱근을 판별하기 위해 있는 것이다. sqrt를 통해 결과 값이 정수로 나오면 1을 반환하고, 정수가 아닌 소수점이 포함되어 나올경우, 2를 반환하게 하였다.
끝!