Heim  >  Artikel  >  Java  >  Wie kann der Fehler „Ganzzahl zu groß“ beim Finden von Primfaktoren behoben werden?

Wie kann der Fehler „Ganzzahl zu groß“ beim Finden von Primfaktoren behoben werden?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-09 19:27:02796Durchsuche

How to Fix the

Überwindung des Fehlers „Integer Number Too Large“ für 600851475143

Das Code-Snippet stellte Versuche bereit, den größten Primfaktor der Zahl 600851475143 zu finden. Beim Ausführen des Codes tritt jedoch der Fehler „Ganzzahlzahl zu groß“ auf. Dieser Fehler tritt auf, weil 600851475143 den Maximalwert überschreitet, der durch eine 32-Bit-Ganzzahl dargestellt werden kann, dem Typ, der im Code verwendet wird.

Um dieses Problem zu beheben und den größten Primfaktor von 600851475143 zu finden, verwenden Sie den Code muss einen Datentyp verwenden, der größere Werte darstellen kann. Dies kann erreicht werden, indem der Typ von i in long, eine 64-Bit-Ganzzahl, geändert wird.

Hier ist der korrigierte Code:

public class Three {
    public static void main(String[] args) {
        Three obj = new Three();
        obj.function(600851475143L);
    }

    private Long function(long i) {
        Stack<Long> stack = new Stack<Long>();

        for (long j = 2; j <= i; j++) {
            if (i % j == 0) {
                stack.push(j);
            }
        }
        return stack.pop();
    }
}

Durch Schreiben des Literals 600851475143 als 600851475143L wird dies explizit angegeben als 64-Bit-Ganzzahl dargestellt. Dadurch kann der Code den größten Primfaktor der gegebenen Zahl genau finden und zurückgeben.

Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Ganzzahl zu groß“ beim Finden von Primfaktoren behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn