Sunday, May 1, 2016

UVA 10023 - Square root

This solution is in Java :) 


import java.io.*;
import java.util.*;
import java.math.*;

class test2{
    Scanner scan = new Scanner(System.in);
static final BigInteger two = new BigInteger("2");
static final BigInteger one = new BigInteger("1");
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
while(N-- >0){
BigInteger y = scanner.nextBigInteger();
BigInteger  upper = y.divide(two) ,lower = one ,k;
while(upper.compareTo(lower) >0){
//System.out.println("upper " +upper+" lower "+ lower );
k = (upper.add(lower)).divide(two);
if(y.divide(k).compareTo(k)>0) lower = k.add(one);
else upper = k;
}
//temp = y.divide(2);
System.out.println(lower);
if (N > 0)
                System.out.println();
}


    }

}

No comments:

Post a Comment