मैं जावा में BigInteger
के साथ int
की तुलना कैसे करूं? मुझे विशेष रूप से पता होना चाहिए कि int
BigInteger
से कम है या नहीं। यहां मैं कोड का उपयोग कर रहा हूं:जावा पूर्णांक की तुलना करें और bigInteger
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;
};
धन्यवाद।
ठीक है, तुम क्यों लगता है कि नहीं है काम कर रहे हैं? –
@ ई_नेट 4 उम ... मुझे पता है कि यह क्यों काम नहीं कर रहा है। मैं एक समाधान की तलाश में हूँ। – Progo
यदि आप जो पूछ रहे हैं वह बहुत सी कोड है "एक इंट के साथ BigInt की तुलना करें"। क्या वहां कोई और प्रश्न छिपा हुआ है? अन्यथा: http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html#compareTo(java.math.BigInteger) 'तुलना करने के लिए' रिटर्न -1 (इससे कम), 0 (बराबर), या 1 (0 से अधिक) – Gus