首頁 >Java >java教程 >如何解決求質因數時出現「整數太大」錯誤?

如何解決求質因數時出現「整數太大」錯誤?

Patricia Arquette
Patricia Arquette原創
2024-11-09 19:27:02838瀏覽

How to Fix the

克服 600851475143 的「整數太大」錯誤

代碼嘗試找出數字 600851475143 的最大質因數。然而,在運行程式碼時,它遇到一個“整數太大”錯誤。出現此錯誤的原因是 600851475143 超出了 32 位元整數可以表示的最大值,這是程式碼中使用的類型。

要解決此問題並找到 600851475143 的最大質因數,程式碼必須使用能夠表示更大值的資料類型。這可以透過將 i 的類型修改為 64 位元整數 long 來實現。

以下是更正後的程式碼:

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();
    }
}

透過將文字 600851475143 寫成 600851475143L,明確表示為 64 位元整數。這使得程式碼能夠準確地找到並傳回給定數字的最大素因數。

以上是如何解決求質因數時出現「整數太大」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn