私は、友人の証拠が正の整数でないことを知るために短いテストを作成しています.2回書かれたとき(つまり10-> 1010)は完璧です平方。私はそれを実行すると数学的証明を試すときにエラーが発生する
package checker;
import static java.lang.Math.*;
public class Checker {
public static void main(String[] args) {
for(int i=10001; i<1000000; i++) {
String repeat = i + "" + i;
int x = Integer.valueOf(repeat);
double root = Math.sqrt(x);
if (root == Math.floor(root) && !Double.isInfinite(root)) {
System.out.println("When " + i + " is repeated and the root is taken of it, the result, " + x
+ " IS a perfect square.");
}
}
}
};
私はエラーを取得する:
Exception in thread "main" java.lang.NumberFormatException: For input string: "2147521475"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:583)
at java.lang.Integer.valueOf(Integer.java:766)
at checker.Checker.main(Checker.java:11)
私は、Javaにかなり新しいですので、私は全体の多くを理解していません。ヘルプは高く評価されます。ありがとう。
それはintergerの範囲外です。整数の最大値は2147483647です – Naruto