Java compare integer and bigInteger

How to compare int with BigInteger in Java? I especially need to know if int less than BigInteger . Here is the code I'm using:

 private static BigInteger two = new BigInteger("2"); private static BigInteger three = new BigInteger("3"); private static BigInteger zero = new BigInteger("0"); public static BigInteger bigIntSqRootCeil(BigInteger x) throws IllegalArgumentException { if (x.compareTo(BigInteger.ZERO) < 0) { throw new IllegalArgumentException("Negative argument."); } if (x == BigInteger.ZERO || x == BigInteger.ONE) { return x; } BigInteger two = BigInteger.valueOf(2L); BigInteger y; for (y = x.divide(two); y.compareTo(x.divide(y)) > 0; y = ((x.divide(y)).add(y)).divide(two)); if (x.compareTo(y.multiply(y)) == 0) { return y; } else { return y.add(BigInteger.ONE); } } private static boolean isPrimeBig(BigInteger n){ if (n.mod(two) == zero) return (n.equals(two)); if (n.mod(three) == zero) return (n.equals(three)); BigInteger m = bigIntSqRootCeil(n); for (int i = 5; i <= m; i += 6) { if (n.mod(BigInteger.valueOf(i)) == zero) return false; if(n.mod(BigInteger.valueOf(i + 2)) == zero) return false; }; return true; }; 

Thanks.

+6
source share
3 answers

How to compare int with BigInteger in Java? I especially need to know if int is less than BigInteger.

Before matching, turn int into BigInteger :

 if (BigInteger.valueOf(intValue).compareTo(bigIntegerValue) < 0) { // intValue is less than bigIntegerValue } 
+16
source

Instead

 if (x == BigInteger.ZERO || x == BigInteger.ONE) { return x; 

You must use: -

 if (x.equals(BigInteger.ZERO) || x.equals(BigInteger.ONE)){ return x; 

In addition, you must first change Integer to BigInteger, and then compare as Joe pointed out in your answer:

  Integer a=3; if(BigInteger.valueOf(a).compareTo(BigInteger.TEN)<0){ // your code... } else{ // your rest code, and so on. } 
+4
source

Just use BigInteger.compare :

 int myInt = ...; BigInteger myBigInt = ...; BigInteger myIntAsABigInt = new BigInteger(String.valueOf(myInt)); if (myBigInt.compareTo(myIntAsABigInt) < 0) { System.out.println ("myInt is bigger than myBigInt"); } else if (myBigInt.compareTo(myIntAsABigInt) > 0) { System.out.println ("myBigInt is bigger than myInt"); } else { System.out.println ("myBigInt is equal to myInt"); } 
+1
source

Source: https://habr.com/ru/post/975228/


All Articles