首頁 > Java > java教程 > 主體

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

Patricia Arquette
發布: 2024-11-09 19:27:02
原創
798 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板