링크 →
아영
**package Baekjoon.java.silver;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigInteger;
public class boj13706 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BigInteger N = new BigInteger(br.readLine());
BigInteger left = BigInteger.ONE;
BigInteger right = N;
BigInteger n = BigInteger.ONE;
while(n.compareTo(N)!=0){
n = left.add(right).divide(BigInteger.TWO);
if(n.pow(2).compareTo(N)==0){
break;
}else if(n.pow(2).compareTo(N) == 1){
right = n;
}else if(n.pow(2).compareTo(N) == -1){
left = n;
}
}
System.out.println(n);
}
}**
은영
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
public class baekjoon13706 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BigInteger N = new BigInteger(br.readLine());
BigInteger one = new BigInteger("1");
BigInteger two = N;
BigInteger ans;
while (true) {
ans = one.add(two);
ans = ans.divide(new BigInteger("2"));
int result = (ans.multiply(ans)).compareTo(N);
if (result == 0) break;
else if (result == 1) two = ans.subtract(new BigInteger("1"));
else one = ans.add(new BigInteger("1"));
}
System.out.println(ans);
}
}
건
package day_0411;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
public class BOJ13706 {
static BigInteger n;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = new BigInteger(br.readLine());
BigInteger answer = bSearch();
System.out.println(answer);
}
static BigInteger bSearch() {
BigInteger start = BigInteger.ONE;
BigInteger end = n;
BigInteger mid;
while(start.compareTo(end) < 0) {
mid = start.add(end).divide(BigInteger.valueOf(2));
if (mid.pow(2).compareTo(n) == 0) {
return mid;
} else if (mid.pow(2).compareTo(n) > 0){
end = mid.add(BigInteger.ONE);
} else {
start = mid.add(BigInteger.valueOf(-1));
}
}
return BigInteger.valueOf(-1);
}
}
용문