2016-06-09 13 views
-3

Wie werden BigInteger-Objekte für die Berechnung und in for-Schleifen verwendet? Vorausgesetzt, ich muss die größte Primzahl unter einer gegebenen Zahl finden, wie mache ich eine Schleife zwischen 2 und der großen Zahl? Es übersteigt die maximale Größe von int und langen Datentypen bei weitem.Arithmetische Operationen auf BigInteger in Java

+2

Ihre Antwort funktionieren soll, ist, wie üblich, in der [Dokumentation] (https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger. html). Wenn Sie Fragen zu einer Klasse haben, ist dies normalerweise der richtige Ort, um Ihre Antworten zu finden. – bcsb1001

+1

was Sie fragen, ist unklar. folgen Sie diesem Link http://stackoverflow.com/help/how-to-ask – Priyamal

Antwort

1

Wenn Sie also nach einer Schleife suchen, deren Zahlen größer als ganze Zahlen sind, können Sie so etwas versuchen.

for(BigInteger i = BigInteger.ZERO; i < *your big number here*; i= i.add(BigInteger.ONE){ 
     //whatever you're looking to do 
} 

Die

+0

Da 'BigInteger's unveränderlich sind, bedeutet das Ignorieren des Ergebnisses eines Aufrufs von' add() ', dass der Aufruf _nothing_ ausführt. Die korrekte Form für den dritten Teil der Schleife ist "i = i.add (BigInteger.ONE)" - beachte, dass "BigInteger.ONE" auch im Allgemeinen besser lesbar ist als ein "valueOf()" - Aufruf. Dasselbe gilt für 'BigInteger.ZERO', das Sie in der ersten Klausel Ihrer For-Schleife verwenden können. -1, um die Korrektheit Ihres Codes nicht zu überprüfen, aber ich werde ihn entfernen, wenn Sie eine Änderung vornehmen, um den Fehler zu beheben. – bcsb1001

+0

Danke für den Fang! –

+0

Sie verwenden immer noch nicht das Ergebnis von 'add()'. 'i = i.add (BigInteger.ONE)', nicht nur der Aufruf von 'add()'. – bcsb1001