백준/Java

[백준 자바] 2417번(정수 제곱근) - 큰 수 제곱근

gamzaggang7 2024. 6. 27. 15:38
728x90

실버 4

문제

정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 n이 주어진다. (0 ≤ n < 263)

출력

첫째 줄에 q2 ≥ n인 가장 작은 음이 아닌 정수 q를 출력한다.

 


 

728x90

BigInteger.sqrtAndRemainder()를 사용해 제곱근과 나머지를 구한다.

나머지가 0이 아니라면, 즉 정수 제곱근이 아니면 제곱근 값을 올림한다.

import java.io.*;
import java.math.BigInteger;

public class Main2417 {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    BigInteger N = new BigInteger(br.readLine());

    BigInteger[] sqrt = N.sqrtAndRemainder();

    if (!sqrt[1].equals(BigInteger.ZERO))
      sqrt[0] = sqrt[0].add(BigInteger.ONE);

    bw.write(sqrt[0].toString());

    bw.flush();
    br.close();
    bw.close();
  }
}

728x90