Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,45 @@
|
|||
import java.math.BigInteger;
|
||||
|
||||
public class Isqrt {
|
||||
private static BigInteger isqrt(BigInteger x) {
|
||||
if (x.compareTo(BigInteger.ZERO) < 0) {
|
||||
throw new IllegalArgumentException("Argument cannot be negative");
|
||||
}
|
||||
var q = BigInteger.ONE;
|
||||
while (q.compareTo(x) <= 0) {
|
||||
q = q.shiftLeft(2);
|
||||
}
|
||||
var z = x;
|
||||
var r = BigInteger.ZERO;
|
||||
while (q.compareTo(BigInteger.ONE) > 0) {
|
||||
q = q.shiftRight(2);
|
||||
var t = z;
|
||||
t = t.subtract(r);
|
||||
t = t.subtract(q);
|
||||
r = r.shiftRight(1);
|
||||
if (t.compareTo(BigInteger.ZERO) >= 0) {
|
||||
z = t;
|
||||
r = r.add(q);
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("The integer square root of integers from 0 to 65 are:");
|
||||
for (int i = 0; i <= 65; i++) {
|
||||
System.out.printf("%s ", isqrt(BigInteger.valueOf(i)));
|
||||
}
|
||||
System.out.println();
|
||||
|
||||
System.out.println("The integer square roots of powers of 7 from 7^1 up to 7^73 are:");
|
||||
System.out.println("power 7 ^ power integer square root");
|
||||
System.out.println("----- --------------------------------------------------------------------------------- -----------------------------------------");
|
||||
var pow7 = BigInteger.valueOf(7);
|
||||
var bi49 = BigInteger.valueOf(49);
|
||||
for (int i = 1; i < 74; i += 2) {
|
||||
System.out.printf("%2d %,84d %,41d\n", i, pow7, isqrt(pow7));
|
||||
pow7 = pow7.multiply(bi49);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue