600851475143 の「整数が大きすぎます」エラーを解決する
提供されたコード スニペットは、数値 600851475143 の最大の素因数を検索しようとします。ただし、コードを実行すると、「整数」が発生します。大きすぎます」というエラーが表示されます。このエラーは、600851475143 が、コードで使用されている型である 32 ビット整数で表現できる最大値を超えているために発生します。
この問題を解決し、600851475143 の最大の素因数を見つけるには、コードより大きな値を表現できるデータ型を使用する必要があります。これは、i の型を long (64 ビット整数) に変更することで実現できます。
修正されたコードは次のとおりです:
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 中国語 Web サイトの他の関連記事を参照してください。