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