Rev 38 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 38 | Rev 39 | ||
---|---|---|---|
Line 354... | Line 354... | ||
354 | // return num.pow(2).toString().endsWith(num.toString()); |
354 | // return num.pow(2).toString().endsWith(num.toString()); |
355 | 355 | ||
356 | // n² === n (mod 10^m) <===> n²%10^m == n%10^m == n |
356 | // n² === n (mod 10^m) <===> n²%10^m == n%10^m == n |
357 | 357 | ||
358 | BigInteger m_pow = BigInteger.TEN.pow(m); |
358 | BigInteger m_pow = BigInteger.TEN.pow(m); |
- | 359 | ||
359 | return num.pow(2).mod(m_pow).equals(num); |
360 | //return num.pow(2).mod(m_pow).equals(num); |
- | 361 | ||
- | 362 | return num.modPow(BigInteger.valueOf(2), m_pow).equals(num); |
|
360 | } |
363 | } |
361 | 364 | ||
362 | protected static boolean isImmortable(BigInteger num) { |
365 | protected static boolean isImmortable(BigInteger num) { |
363 | int m = num.toString().length(); |
366 | int m = num.toString().length(); |
364 | return isImmortable(num, m); |
367 | return isImmortable(num, m); |