aboutsummaryrefslogtreecommitdiff
path: root/challenge-125/abigail/java
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-08-13 18:59:21 +0200
committerAbigail <abigail@abigail.be>2021-08-13 18:59:21 +0200
commit5d3b637c1812e4d1534a72f5ab834dd7c88b6665 (patch)
treeb04c89aebae873efcd67575b567c6eb83b3c9907 /challenge-125/abigail/java
parenta1e6d2389d3af8169fe5076b00f928d153c69ce7 (diff)
downloadperlweeklychallenge-club-5d3b637c1812e4d1534a72f5ab834dd7c88b6665.tar.gz
perlweeklychallenge-club-5d3b637c1812e4d1534a72f5ab834dd7c88b6665.tar.bz2
perlweeklychallenge-club-5d3b637c1812e4d1534a72f5ab834dd7c88b6665.zip
Java and Pascal solutions for week 125, part 1
Diffstat (limited to 'challenge-125/abigail/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);
+ }
+ }
+ }
+ }
+}