aboutsummaryrefslogtreecommitdiff
path: root/challenge-125/abigail/java/ch-1.java
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-08-15 21:58:39 +0100
committerGitHub <noreply@github.com>2021-08-15 21:58:39 +0100
commit84e0ff46b3f17b71d903190abd7dd68831c11b8c (patch)
tree31ab8d58f4b76ac8c6c0ed56580dc83304f3c3d2 /challenge-125/abigail/java/ch-1.java
parent77fce3c8870cb065511df5db166f0b4d4845b26c (diff)
parent0dfc1786c2ab2282b265ba90fe18aa32dc33e3fb (diff)
downloadperlweeklychallenge-club-84e0ff46b3f17b71d903190abd7dd68831c11b8c.tar.gz
perlweeklychallenge-club-84e0ff46b3f17b71d903190abd7dd68831c11b8c.tar.bz2
perlweeklychallenge-club-84e0ff46b3f17b71d903190abd7dd68831c11b8c.zip
Merge pull request #4715 from Abigail/abigail/week-125
Abigail/week 125
Diffstat (limited to 'challenge-125/abigail/java/ch-1.java')
-rw-r--r--challenge-125/abigail/java/ch-1.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/challenge-125/abigail/java/ch-1.java b/challenge-125/abigail/java/ch-1.java
new file mode 100644
index 0000000000..722b6d0f81
--- /dev/null
+++ b/challenge-125/abigail/java/ch-1.java
@@ -0,0 +1,52 @@
+//
+// See ../README.md
+//
+
+//
+// Run as: ln ch-1.java ch1.java; javac ch1.java; java ch1 < input-file
+//
+
+import java.util.*;
+
+public class ch1 {
+ public static long introot (long square) {
+ return ((long) Math . floor (Math . sqrt (square)));
+ }
+
+ public static void main (String [] args) {
+ Scanner scanner = new Scanner (System . in);
+ while (scanner . hasNextInt ()) {
+ long n = scanner . nextInt ();
+ if (n <= 2) {
+ System . out . println ("-1");
+ continue;
+ }
+
+ long n_sq = n * n;
+ long c = n + 1;
+ long c_sq = n_sq + 2 * n + 1;
+
+ while (2 * c - 1 <= n_sq) {
+ long b_sq = c_sq - n_sq;
+ long b = introot (b_sq);
+
+ if (b_sq == b * b) {
+ System . out . printf ("%d %d %d\n", n, b, c);
+ }
+
+ c_sq += 2 * c + 1;
+ c += 1;
+ }
+
+ long max_a = (long) Math . floor (n / Math . sqrt (2));
+ long a = 3;
+ for (a = 3; a <= max_a; a ++) {
+ long b_sq = n_sq - a * a;
+ long b = introot (b_sq);
+ if (b_sq == b * b) {
+ System . out . printf ("%d %d %d\n", a, b, n);
+ }
+ }
+ }
+ }
+}