23.3.27(정수 제곱근 결정)


사용된 메소드 → 클래스 java.lang.Math의 메소드

Math 클래스에서 제공하는 모든 메서드는 정적이므로 Math 클래스를 가져오거나 선언하지 않고 직접 사용할 수 있습니다.

Math.pow(n,2) → 제곱 계산

이것은 java.lang.Math 클래스의 메소드로, double형의 a와 b를 인자로 받으면 double형 a의 제곱 b를 반환한다.

Math.sqrt(n) → 제곱근 계산

→ 입력값과 출력값이 모두 double형이다.

public class Solution {
    public long solution(long n) {
        if (Math.pow((int)Math.sqrt(n),2)==n) {
            return (long) Math.pow(Math.sqrt(n)+1,2);
        }
        return -1;
    }
}

(int)Math.sqrt(n)를 사용하여 int로 변환하는 이유는 주어진 숫자 n이 완전제곱수인지 확인하기 위해서입니다.

즉, n이 완전 제곱수이면 n의 제곱근은 정수 값입니다. 제곱근을 정수로 변환하면 본질적으로 가장 가까운 정수 값으로 내림됩니다.

그런 다음 Math.pow((int)Math.sqrt(n),2)를 사용하여 해당 정수 값의 제곱을 계산합니다. 이 값이 n과 같으면 n이 완전제곱수임을 알 수 있습니다.

이 경우 함수는 전체 제곱 값(long) Math pow(Math.sqrt(n)+1,2)를 반환합니다. 그렇지 않고 n이 완전 제곱수가 아닌 경우 함수는 -1을 반환합니다.