# with - operator biginteger java

## How do i compare values of BigInteger to be used as a condition in a loop? (2)

Maybe

```
while (base.compareTo(prime)>0){
//rest of your loop
}
```

I am trying to compare if the value of one BigInteger(base) is > the value of another BigInteger(prime) and if the value of 'a' is not equal to one. If value of a is not 1, it should break out of the loop. How should i compare them?

```
Random ran = new Random();
BigInteger prime = new BigInteger(16,ran);
BigInteger base,a,one;
one = new BigInteger("1");
for (int i = 0; i < 65535; i++){
while (base>prime){
base = new BigInteger(16,ran);
}
a = base.modPow(prime.subtract(one),prime);
System.out.println("a: "+a);
if (a != one){
break;
}
}
```

Since `BigInteger`

s are objects, you should use caution when using the equality operators. Right now, you're performing a reference comparison (which in this case, will more than likely fail). You'll need to use the `equals()`

or `compareTo()`

methods.

BigInteger has a built-in static variable representing one. Use the `equals()`

method or the `compareTo()`

method to compare values:

```
if (!a.equals(BigInteger.ONE)) {
...
}
```

-or-

```
if (a.compareTo(BigInteger.ONE) != 0) {
...
}
```

Hope that helps! See here for more information: http://download.oracle.com/javase/6/docs/api/java/math/BigInteger.html