본문 바로가기

개발/JAVA

[JAVA] level1 . 정수 제곱근 판별 / Math.sqrt(n), Math.pow(n,m)

-정수 제곱근 판별

 

1. 제곱근, 거듭제곱

          import java.util.Math;

 

          sqrt(n); : n의 제곱근

          pow(n,m); : n 3 거듭제곱

 

          or

          

          바로

          Math.sqrt(n);

          Math.pow(n,m);

 

2. 처음 실패 소스

class Solution {

 public long solution(long n) {

     long answer = -1;

     

     int i;

     

     for(i=1;i<=n;i++){

         if(n/i==i){

              answer = (i+1)*(i+1);

              break;

         }

     }

     return answer;

  }

}

 

3. 두 번째 실패 소스

class Solution {

 public long solution(long n) {

     long answer = -1;

     

     int i;

     

     for(i=1;i<=Math.sqrt(n);i++){

         if(n/i==i){

              answer = (i+1)*(i+1);

              break;

         }

     }

     return answer;

  }

}

 

 

4. 13번 테스트만 실패 소스

class Solution {

 public long solution(long n) {

     long answer = -1;

     

     int i;

     

     

     for(i=1;i<=n;i++){

         if(n/i==i){

              answer = (long)((Math.sqrt(n) +1) * (Math.sqrt(n)+1));

              break;

         }

     }

     return answer;

  }

}

 

5. 통과 소스

class Solution {

 public long solution(long n) {

     long answer = -1;

     

     int i;

     

     

     for(i=1;i<=n;i++){

         if(Math.sqrt(n)==i){

answer = (long)((Math.sqrt(n) +1) * (Math.sqrt(n)+1));

// 조금 더 간단한 소스

// answer = (long)(Math.pow(i+1,2)) ;

              break;

         }

     }

     return answer;

  }

}

 

6. if( n/i == i )  if( Math.sqrt(n) == i ) 가 다른 점?

          : 알아보기