poj 2109 Power of Cryptography

http://poj.org/problem?id=2109

代码:

import java.util.*;

import java.math.BigInteger;

import java.math.BigDecimal;



;



public class Main {

	

	public static void main(String[] args) {

		Scanner in=new Scanner(System.in);

		int n;

		BigInteger m,l,r,mid;

		BigInteger k2=BigInteger.ONE.add(BigInteger.ONE);

		while(in.hasNext()){

			n=in.nextInt();

			m=in.nextBigInteger();

			l=BigInteger.ONE;

			r=m;

			while(l.compareTo(r)<0){

				mid=l.add(r).divide(k2);

				int tmp=mid.pow(n).compareTo(m);

				if(tmp==0){

					r=mid;break;

				}

				if(tmp<0){

					l=mid.add(BigInteger.ONE);

				}

				else{

					r=mid.subtract(BigInteger.ONE);

				}

			}

			System.out.println(r);

		}

		

	}



}

  

你可能感兴趣的:(Cryptography)